我正在尝试读取一些应从文件传递到我的程序的命令。这些命令位于不同的行上,因此我想这意味着它们由\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/

10-11 04:20