| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4225 人关注过本帖
标题:code blocks 写的不能运行 错误叫permission denied
取消只看楼主 加入收藏
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 16楼 TonyDeng
你的我真看不懂,刚学了一个学期,自定义函数就学了两种,int 和void,我们才讲到递归和嵌套。

字符串前面的空白符消法我就不赘述了,字符串后面的我就是逆向一个个字符读到isspace返回0,最后的for循环就是为了这么办,等到了非空白符if就返回0了。但是那个if语句不知道为什么在空白符的时候就开始返回0了,搞得我调试的时候发现如果字符串后面有一串空格的话后面的空格消不掉。感觉就像逆向的时候isspace失效一样,我问老师老师说让我自己写个函数,别用isspace,但我就想搞明白到底是哪的问题,因为我读了一遍遍代码,自己想的应该是没问题,但为什么一运行起来最后了if语句就是不发挥作用。。

这么个小题麻烦您这么久我还弄不懂,真是不好意思。
2012-12-09 00:13
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 16楼 TonyDeng
简单说就是最后的if语句没有起我希望他起的作用。。。。
2012-12-09 00:15
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
    int i,j,temp;
    char str[101];
    for (;;)
    {
        gets(str);
        for (i=0;; i++) //zheng xiang.
        {
            temp=isspace(str[i]);
            if (temp==0)
                break;
        }
        for (j=0;;)//qv kongbai fu
        {
            str[j]=str[i];
            i++;
            j++;
            if (str[j]=='\0')
            {
               // count=j;
                break;
            }
        }
        for (i=j-1;; i--)//ni xiang qv kongbai
        {
            temp=isspace(str[i]);
            if (temp==0)//目的:直到检测到非空字符返回假
            {
                str[i+1]='\0';
                break;
            }
        }
        printf("%s\n",str);
        if ((str[0]=='E') && (str[1]=='N') && (str[2]=='D') && (str[3]=='\0'))
            return 0;
    }
    return 0;
}


这是我今天又改了点,count好像白写了,我就删了,我做前测了下,isspace返回的是8和0,不是1和0,所以就一直用的!=8。

至于你写的。。。我就勉强读懂定义了些字符串什么的,我现在只会用三个循环还有些学过的函数,指针刚刚讲,我也没预习,所以课上听得不是很懂。

我希望逆向挨个读,掠过那些空白符,包括空格,但是它总是一上来就符合条件然后跳出循环了。
2012-12-09 00:57
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 22楼 TonyDeng
嗯嗯  好的 谢谢你啊~~~·
2012-12-09 01:15
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
    int i,j,temp;
    char str[101];
    for (;;)
    {
        gets(str);
        for (i=0;; i++) //zheng xiang.
        {
            temp=isspace(str[i]);
            if (temp==0)
                break;
        }
        for (j=0;;)//qv kongbai fu
        {
            str[j]=str[i];
            i++;
            j++;
            if (str[j]=='\0')
            {
               // count=j;
                break;
            }
        }
        for (i=j-1;;)//ni xiang qv kongbai
        {

            if (isspace(str[i]))
            {
                i--;
            }
            else
            {
                str[i+1]='\0';
                break;
            }
        }
        printf("%s\n",str);
        if ((str[0]=='E') && (str[1]=='N') && (str[2]=='D') && (str[3]=='\0'))
            return 0;
    }
    return 0;
}

你的程序似乎只是写了个框架,我对i++,++i这块学的不是很好,所以只是看懂了一点思路,然后我把最后的for循环改了下,
for (i=j-1;;)//ni xiang qv kongbai
        {

            if (isspace(str[i]))
            {
                i--;
            }
            else
            {
                str[i+1]='\0';
                break;
            }
        }
但还是不对。。。能不能把我的程序改下,改成对的,那样我可能才能看懂,先谢谢了。
PS:oj作业已经结束了,我不是求答案 = =。
2012-12-10 20:08
快速回复:code blocks 写的不能运行 错误叫permission denied
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020989 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved