读书人

关于fgets( )函数使用时设置最大可输

发布时间: 2013-04-09 16:45:09 作者: rapoo

关于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);

读书人网 >C语言

热点推荐