博客專欄

        EEPW首頁 > 博客 > Linux C - C基礎篇二(基本的輸入輸出)

        Linux C - C基礎篇二(基本的輸入輸出)

        發布人:嵌入式Linux 時間:2023-01-11 來源:工程師 發布文章

        學習Linux c最好用的工具就是man工具了,可以查看c庫函數的原型、參數、返回值等詳細信息。

        1. putchar()函數
        • 函數原型:int putchar(int c)

        • 功能:向終端輸出一個字符

        • 參數c:整型(即字符的ascii) / 字符 / 整型表達式

        • 返回值:輸出的字符的ascii碼值

        2. getchar()函數
        • 函數原型:int getchar();

        • 功能:從終端輸入一個字符

        • 參數:無

        • 返回值:返回的是輸入的字符的ascii碼值

        3. printf()函數
        • int printf(const char *format, ...);

        • 功能:按指定格式向顯示器輸出數據

        格式字符:%[+/-][m.n]d

        m表示打印數據的列寬,如果m小于數據位寬,數據按實際輸出,如果m大于數據位寬,在數據左邊補空格。n代表小數的位數。+代表打印一個+號。- 代表左對齊,空格補在右邊。

        打印格式:

        4. scanf()函數
        • int scanf(const char * format, ...)

        • 功能:從終端讀取任意類型的數據

        • 參數:format 格式控制字符串,%d %s %c....; ...地址符列表

        • 返回值:成功讀取數據的個數,出錯返回EOF

        回收垃圾字符:

        scanf("%c%c%c", &a, &b, &c) ,當在終端輸入a b c時,得到的是a=a, b= , c = b;作為分隔符的空格或者回車在這里其實是垃圾字符。

        方法1: 加空格scanf("%c %c %c", &a, &b, &c) 可以匹配吃掉任意數量的空格,tab,回車鍵。

        方法2: 加%*c scanf("%c%*c%c%*c%c", &a, &b, &c) 可以匹配吃掉一個空格、tab、回車鍵。

        方法3: 在scanf("%c", &a)后面加上getchar函數可以回收垃圾字符。

        5. gets()從終端讀取一個字符串
        • char *gets(char *s);

        • 功能:從終端讀取一個字符串

        • 參數s: 緩存區的首地址.,用來保存讀到的字符串的空間

        • 返回值:成功返回緩沖區的首地址;失敗,返回NULL

        int buf[10] = {};

        gets(buf);

        注意:一般不建議使用gets,因為不檢查目的地址的空間大小,容易發生越界。

        6. puts() 向終端輸出一個字符串
        • char puts(const char *s);

        • 功能:向終端輸出一個字符串. 默認加換行符

        • 參數:要輸出的字符串的首地址

        • 返回值:成功返回非負數,出錯返回-1

        用法:puts("hello world");

        以上是老韓關于Linux c基礎的總結,如有不足歡迎指點;對Linux c或者Linux驅動感興趣的朋友可以收藏關注,我會持續更新的,謝謝支持!


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: Linux C

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 康保县| 松原市| 石泉县| 深水埗区| 洛南县| 苍溪县| 文昌市| 武夷山市| 武平县| 深水埗区| 洪江市| 尼玛县| 罗平县| 德钦县| 汕头市| 卫辉市| 增城市| 铜鼓县| 长丰县| 大洼县| 三都| 镇远县| 邵东县| 临安市| 隆尧县| 琼海市| 枞阳县| 深水埗区| 京山县| 清苑县| 江永县| 托里县| 全椒县| 望谟县| 吴旗县| 高平市| 荥阳市| 高要市| 巴南区| 资中县| 罗田县|