【发布时间】:2022-01-13 07:50:12
【问题描述】:
大家好,我对代码 C 有这个问题:读取包含 5 个字符串的输入数据(input02.txt),然后将每个字符串的长度写入新文件。 文件中的字符串:
Five little
Monkeys jumping
On the bed
One fell off
And bumped his head
这是我的代码:
#include <stdio.h>
#include <string.h>
int main(){
char s[100];
int m,c=1;
FILE *fin,*fout;
fin = fopen("input02.txt", "r");
fout = fopen("length.txt", "w");
if (fin!=NULL){
while(!feof(fin)){
fgets(s, 100, fin);
m=strlen(s);
while(c<6){
fprintf(fout,"Length of %d string: %d\n",c,m);
c++;
}
}
fclose(fin);
fclose(fout);
}
return 0;
}
但 length.txt 文件中的输出显示如下:
Length of 1 string: 12
Length of 2 string: 12
Length of 3 string: 12
Length of 4 string: 12
Length of 5 string: 12
我能得到一些帮助吗,你
【问题讨论】:
-
至少这个问题:
while(!feof(fin)){ fgets(s, 100, fin);-->while(fgets(s, sizeof s, fin)) {Why is “while ( !feof (file) )” always wrong? -
抱歉没有运气 :( 输出还是一样的
-
将
while(c<6)更改为if (c < 6) -
更好的是,更改
while(c<6)-->/*nothing */。在上面的feof()修复之后,这里不需要测试。 -
@tinkdinkphiu 忽略空间是一个单独的问题。请写一个新问题,并用代码、示例输入、实际输出和预期输出详细说明您的要求。