这是我的代码
#include<stdio.h>
int main()
{
FILE* fp;
int i;
fp=fopen("newfile","r");
if(fp==NULL)
{
printf("hhaha");
return 0;
}
char str[20];
for(i=0;i<2;i++)
{
fgets(str,20,fp);
printf("%s",str);
}
return 0;
}
现在如果我的新文件有文本
my name
is xyz
那怎么当我打印时两行打印在两个换行符中? 换行符从哪里来?
最佳答案
fgets
将指针设置为 char *
代表文件的行,包括行尾的 \n
。 (与大多数字符串一样,它也将以 '\0'
终止)
一个文件:
This
is
my
file
将从 fgets
获得:
This\n\0
,is\n\0
,my\n\0
,file\n\0
1
1最终值可能不包含\n
。这将取决于它是否是 \n
终止文件。
关于c - 为什么我的输出在 fgets 中自动格式化,即 '\n'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7664950/