使用fgets从文件中读取

时间:2013-09-14 21:04:31

标签: c

小C问题,感谢您的帮助:

文件的第一行是:
“加A” 它下方有更多的线条。

我正在使用fgets从文件中读取第一行:

char str [500];
fgets(str,sizeof(str),filePointer);

由于fgets在换行符char处停止,我将不需要的换行符替换为'\ 0':

char *p;
if ((p = strchr(str, '\n')) != NULL)
  *p = '\0';

现在,如果我以这种方式打印str:

printf("DEBUG: str:=[%s]\n",str);

为什么我会得到这样糟糕的输出:

]EBUG: str:=[add A

而不是:

DEBUG: str:=[add A]

...
谢谢!

1 个答案:

答案 0 :(得分:3)

您的文件可能会使用\r\n行结尾(也就是Windows行结尾),因此您会留下一个尾随\r

同样杀死\r,你应该完成。