关于fgets( )函数使用时,设置最大可输入参数失灵的问题
# include <stdio.h>
int main (void)
{
char line[5];
while (fgets (line, 5, stdin))
fputs (line, stdout);
return 0;
}
上面代码的情况下,为什么设置的最大读入字符数 5 没有作用啊?
而是用下面的语句,功能正常 !
int * p ;
p = line;
p = fgets (line, 5, stdin);
fputs (p, stdout);
[解决办法]
while (fgets (line, 5, stdin)) // 1.你可以调试下,比如你输入10次q,while要循环3次,第一次打印qqqq,第二次打印qqqq,第三次打印qq
fputs (line, stdout);
// scanf("%*[^\n]%*c"); // 2.然后你加上这句后,看看是什么效果。这句的功能是清除输入缓冲区
[解决办法]
while (fgets (line, 5, stdin))
fputs (line, stdout);
进入循环,读了又读,录入多少都读出来了
[解决办法]
// 这个代码里,你并没有循环地去读取,所以...
int * p ;
p = line;
p = fgets (line, 5, stdin);
fputs (p, stdout);