我在下面的代碼中遇到了一些麻煩,我不能爲我的生活弄清楚什麼地方出了問題,爲什麼它顯示它的作用,任何幫助或幫助將不勝感激。它應該允許輸入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;
}
要做的第一件事就是使用基於0的循環代替基於1的循環(對於C語言來說更自然 - 我注意到你已經有了一個'n + 1',它看起來像是假定基於0的循環)。除此之外,它看起來應該起作用。嘗試在第一個循環之後打印'n',看看它是否達到了6 ... – John3136
@ John3136他沒有使用任何數組,除了一些他沒有索引的字符串。 – Barmar
如果在每次迭代後'fflush(stdout)'會發生什麼? – n3rd4n1