zoukankan      html  css  js  c++  java
  • gets--vs--fgets

    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个,因为最后的一个字符结尾还需要一个结束符号''.

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

        

  • 相关阅读:
    挺好的程序员面试网址
    [转]浅谈协方差矩阵
    坚持
    matlab中文论坛
    看书
    Opengl绘制点
    说服力
    心情
    vector操作
    我的毕设
  • 原文地址:https://www.cnblogs.com/webclz/p/5468118.html
Copyright © 2011-2022 走看看