首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于fgets( )函数使用时,设置最大可输入参数失灵的有关问题

2013-04-09 
关于fgets( )函数使用时,设置最大可输入参数失灵的问题# include stdio.hint main (void){char line[5]

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

热点排行