2

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

文件的第一行是:
“add A”
它下面有更多行。

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

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

由于 fgets 在换行符处停止,我将不需要的换行符替换为 '\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]

??
谢谢!!

4

1 回答 1

3

您的文件可能使用\r\n了行尾(又名 Windows 行尾),因此您留下了尾随\r

杀死\r以及你应该完成。

于 2013-09-14T21:30:03.627 回答