gpt4 book ai didi

c - 文件名字符串错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:16 24 4
gpt4 key购买 nike

我在使用下面的代码时遇到了一些麻烦,我终其一生都无法弄清楚出了什么问题以及为什么它会显示它所做的事情,我们将不胜感激。它应该允许输入 5 行文本并在屏幕上显示这 5 行,但它只允许输入 4 行,并显示 4 行。请帮忙!

#include <stdio.h>

int main()
{
char string[100];
char filename[20];
int n=0;
FILE *fp;
printf(" Enter the name of file to open ");
scanf("%s",filename);
fp =fopen(filename,"wr");
if(fp==NULL)
{
printf("unable to open File");
}
for(n=1;n<6;n++)
{
printf("\nEnter line %d:",n+1);
gets(string);
fputs(string,fp);
fputs("\n",fp);
}
fclose(fp); /*close the file*/
fp =fopen(filename,"r");
if(fp==NULL)
{
printf("unable to open File");
}
for(n=1;n<6;n++)
{
fgets(string,100,fp);
printf("%s",string);
}
fclose(fp); // close after reading.
return 0;
}

最佳答案

问题是 scanf("%s", filename); 不使用文件名后的换行符。因此,您对 gets() 的第一次调用会将此换行符读取为空行。

添加:

gets(string);

在开始阅读输入行之前,在该行之后用完该行的其余部分。

关于c - 文件名字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com