首页 > 其他 > 详细

gets--vs--fgets

时间:2016-05-07 13:21:17      阅读:134      评论:0      收藏:0      [点我收藏+]

gets  fget的区别

   这两个函数都能从标准的输入流中读取信息,比如从键盘中输入信息,但是有些区别。

     使用gets当输入的字符多于预定个数时候,会造成溢出,程序报错。 

int main(int argc, const char * argv[]) {

    char search_for[10];
    
    printf("Search for:");
    
    gets(search_for);
    
    printf("str is %s",search_for);
    
    return 0;
}

    但是使用fgets能够解决这个问题,当超出时候,会自动截取。需要注意的地方是fgets只能获取n-1个字符,如下面的例子,字符数组的长度是10,但是能够接受的字符个数

只有9个,因为最后的一个字符结尾还需要一个结束符号‘\0‘.

    char search_for[10];
    
    printf("Search for:");
    
    fgets(search_for,sizeof(search_for),stdin);
    
    printf("str is %s",search_for);
    
    return 0;
}

    

gets--vs--fgets

原文:http://www.cnblogs.com/webclz/p/5468118.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!