码迷,mamicode.com
首页 > 其他好文 > 详细

gets--vs--fgets

时间:2016-05-07 13:22:37      阅读:115      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!