【发布时间】:2018-12-23 14:24:41
【问题描述】:
我有以下代码:
int i = 0;
char ar[500];
while(i < 20)
{
printf("Type a line: ");
fgets(ar, 500, stdin);
fprintf(fp,"%s", ar);
i++;
}
基本上,我试图打开一个文件,然后从用户那里获取 20 行输入并将其存储在一个数组中,然后将其打印到文件中。它工作正常,但我不明白 fgets 在 while 循环中是如何工作的。据我了解,当 i = 0 时,fgets 将第一行存储到 ar[500],fprintf 将其打印到文件中,当 i = 1 时,fgets 将第二行存储到 ar[500],但现在 ar[500]有 2 行,但是为什么 fprintf 只将第 2 行打印到文件中,而不是所有 2 行,等等当我递增 1 时。
【问题讨论】: