我正在尝试读取一些应从文件传递到我的程序的命令。这些命令位于不同的行上,因此我想这意味着它们由\n
字符分隔。这是我的命令阅读部分:
FILE *fop;
char command[50];
fopen("mbr.op", "r");
while(!feof(fop))
{
fscanf(fop,"%s[^\n]", command);
printf("%s\n", command);
}
fclose(fop);
这会打印文件中的某些单词,但不是全部,而且不是按预期顺序打印。如何更改此代码以实现所需的结果?
最佳答案
您打开文件不正确(它返回了与打开的文件相关联的FILE指针),应使用fopen
这样-
fop=fopen("mbr.op", "r");
还有
while(!feof(fop))
should not be used。您可以如下编写循环-
while(fscanf(fop,"%[^\n]%*c", command)==1)
{
printf("%s\n", command);
}
注意-还要检查文件是否成功打开。
关于c - 如何读取文件中的所有行并将其存储在字符串中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34472041/