我正在读取c中的文件并将其打印到屏幕上。我正在使用fgets函数逐行读取并在行中分隔字符串。
int i;
int j = 0;
int ctr = 0;
while (!feof(fp)){
fgets(line, 256, fp);
for(i=0;i<=(strlen(line));i++){
if(line[i]==' '|| line[i]=='\0'){
newString[ctr][j]='\0';
ctr++; //for next word
j=0; //for next word, init index to 0
}
else{
newString[ctr][j]=line[i];
j++;
}
}
//printf("the data line by line is: %s\n", line);
}
printf("\n Strings or words after split by space are :\n");
for(i=0;i < ctr;i++)
printf(" %s\n",newString[i]);
这是我正在读取的文件内容:
3
9 3 34 4 12 5 2
6 3 2 7 1
256 3 5 7 8 9 1
这是我的输出:
按空格分隔后的字符串或单词是:
3
9
3
34
4
12
5
2
6
3
2
7
1
256
3
5
7
8
9
1
256
3
5
7
8
9
1
但是它将最后一行打印两次,但我不知道为什么。请告诉我如何删除多余的一个。 预先感谢...