首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

程序实施出现满屏幕的1,一直不停止

2013-06-25 
程序执行出现满屏幕的1,一直不停止各位帮下忙呗,看下哪儿错了呗,我执行出来满屏幕的1还不停。程序实现功能

程序执行出现满屏幕的1,一直不停止
程序实施出现满屏幕的1,一直不停止
各位帮下忙呗,看下哪儿错了呗,我执行出来满屏幕的1还不停。程序实现功能是从data.in中读取一串字符,从第二个字符开始在每个字符前加一个空格,并输出。换行结束输出 执行 读取文件
[解决办法]
while循环里fgets每次读取一行数据时都会覆盖a中原有的内容,a没有初始化,里面可能会有垃圾数据;
strlen计算字符串的长度是以'\0'字符为结尾标识来计算的,a中没看到明确的'\0'结束符;
[解决办法]
fgets()文件中读取一串字符,直到遇到‘\n’ '\0' 结束符就结束了本次取值。所以strlen计算字符串的长度时,会出错的,你可以再字符数组a后面添加一个‘\0’字符。
你可以试着每次读取字符串后,偏移一下文件开始读取位置。 
[解决办法]
1楼和2楼说得不错。strlen()计算的值估计是个超大的值
另外,fopen error的情况应该是不需要fclose的。
[解决办法]

引用:
如果我用fscanf和for循环一起可以不。最初我用的时候他总是在执行的时候显示error,我想问下是为什么啊


LZ程序逻辑都错了,
[解决办法]
1 2 3 楼都不错,还有一个致命的错误
23行 if (i = 0)     // =应该写成==吧

参考一下:
int len = strlen(a);
for (int i=0; i<len; i++)
{
   printf("%c", a[i]);
   if (i != (len-1))
     printf("%s", " ");
}

热点排行