c - 使用 fgets 读取文件

标签 c

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

文件的第一行是:
“添加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]

??
谢谢!!

最佳答案

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

同时杀死\r,你就应该完成了。

关于c - 使用 fgets 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18806372/

相关文章:

c - GDB - 设置没有类型的变量

c - 为什么2个线程的执行比C中的1个线程慢?

c - 使用相对路径打开文件

c - 尽管终止了客户端,write() 仍返回正确的字节数

c - arm-none-eabi-gdb : Undefined target command: "sim"

c - 获取当前目录的名称(不是路径)

c - 为什么无法识别文件系统?

c++ - libgcc_s.so : undefined reference to `__stack_chk_fail@GLIBC_2.4'

c - 根据订购数量修改库存数量

c - 如何根据C中的匹配单词解析和排列csv文件的行?