色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 解析gets、fgtes、scanf三者的區別

解析gets、fgtes、scanf三者的區別 時間:2018-09-27      來源:未知

三者都可以從標準輸入讀取字符,但是使用容易混淆

本文引用地址://m.17old.cn/emb/Column/7272.html

可以用下面程序進行驗證:

#include

#include

#define N 10

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

{

int i;

char buf[N];

for(i=0 ;i

buf[i] = 0x11;

}

while (1) {

gets(buf);

// scanf("%s", buf);

// fgets(buf, N, stdin);

printf("len = %d\n", strlen(buf));

for(i=0 ;i

printf("0x%x ", buf[i]);

}

printf("\n\n");

}

return 0;

}

gets是從標準輸入讀入一行,遇到換行符停止并且把換行符替換為'\0';

上面程序如果輸入'ab'并敲入回車結束,那么打印結果為:

ab

len = 2

0x61 0x62 0x0 0x11 0x11 0x11 0x11 0x11 0x11 0x11

由此可見后的換行被替換為'\0'字符,所以strlen輸出為2

fgets也是從標準輸入讀入一行,但是它會保留換行符然后在換行符后邊加入'\0';

上面程序使用fgets,輸入'ab'并敲入回車結束,那么打印結果為:

ab

len = 3

0x61 0x62 0xa 0x0 0x11 0x11 0x11 0x11 0x11 0x11

0xa是換行符的ascii碼值,由此可見后的換行被保留了,所以strlen輸出為3

scanf和gets很像,但是它以空格或者換行為結束

例如對于gets,輸入“a b”輸出如下:

a b

len = 3

0x61 0x20 0x62 0x0 0x11 0x11 0x11 0x11 0x11 0x11

但是對于scanf輸入如下:

a b

len = 1

0x61 0x0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11

len = 1

0x62 0x0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11

由此可見,scanf遇到第一個空格就已經結束了第一次讀取,因為緩沖區還有一個b,所以第二次讀取立馬進行了。

上一篇:Meteor開發環境的搭建及簡單實用

下一篇:嵌入式Linux文件系統的介紹

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5,京公海網安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 欧美成人免费全部观看天天性色| 久久久久久久一区二区| 精品在线小视频| 91青草视频久久| 亚洲精美色品网站| 亚洲精品天天看| 国产午夜精品全部视频播放| 最新国产成人av网站网址麻豆| 最新亚洲国产精品| 欧美日韩国产精品一区| 国语自产精品视频在免费| 午夜精品久久久久久久99黑人| 日本19禁啪啪免费观看www| 国产精品久久久久久久美男| 国产精品旅馆在线| 亚洲精品国产精品国自产观看浪潮 | 久久久久久久97| 国产成人综合精品在线| 国产精品亚洲网站| 国产亚洲精品久久久久久777| 久久香蕉国产线看观看网| 欧美日韩在线第一页| 国产精品18久久久久久麻辣| 日韩大片免费观看视频播放| 久久久97精品| 欧美一级片在线播放| 亚洲成av人片在线观看香蕉| 国产一区二区三区视频| 欧美激情一区二区三区久久久 | 日韩在线免费观看视频| 亚洲综合国产精品| 麻豆精品精华液| 国产精品久久久久久久久久三级 | 国产欧美日韩高清| 亚洲精品之草原avav久久| 精品国产91乱高清在线观看| 国产精品成人一区二区| 中文字幕亚洲无线码在线一区| 97精品一区二区视频在线观看| 日韩成人性视频| 成人国产亚洲精品a区天堂华泰 |