日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

C語言中scanf的用法舉例_C 語言

作者:long~w ? 更新時間: 2022-12-23 編程語言

scanf的用法

scanf從緩沖區(qū)讀取數(shù)據(jù),每次讀取一個數(shù)據(jù),如果緩沖區(qū)中無內(nèi)容,則出現(xiàn)堵塞,在運行窗口要求用戶輸入;

scanf("%d%d", &a, &b);
如果a和b都被成功讀入,那么scanf的返回值就是2
如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為EOF。
且返回值為int型

一,scanf可以通過鍵盤輸入數(shù)據(jù)到變量中,它的格式有以下兩種

1,scanf(“輸入控制符”,輸入?yún)?shù));

%d 讀入十進制整數(shù)
%o 讀入八進制整數(shù)
%x,%X 讀入十六進制整數(shù)
%c 讀入一個字符
%s 讀入一個字符串
%f,%F,%e,%E,%g,%G 用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入。
%u 讀入一個無符號十進制整數(shù)
h用于d,o,x前,指定為short
l用于d,o,x前,指定為long,用e,f 前指定為double

2,scanf(“非輸入控制符 輸入控制符”,輸入?yún)?shù));

?非控制符一定要原樣輸入,還有注意如果非輸入控制符中有字符
?的話,在輸入的時候不要忘記切換到英文輸入法來輸入英文字符
?在賦值的時候如果用中文輸入法輸入了‘ ,’,結果就成了這樣

二,通過scanf進行賦值

? ?1,指定輸入數(shù)據(jù)所占列寬scanf(“%3d%3d”,&a,&b)
? ? ? ? 輸入:123456系統(tǒng)自動將123賦給a,456賦給b? ? ??
? ?2,%后面加‘*’用來抑制輸入。scanf(“%2d%*3d%2d”,&a,&b)
? ?輸入:1234567。將12賦給a,67賦給b。個數(shù)據(jù)”345”被跳過不賦給任何變量。? ?
?3, ?輸入數(shù)據(jù)流分隔。根據(jù)格式字符的含義從輸入流中取得數(shù)據(jù),當輸入流中數(shù)
?據(jù)類型與格式字符要求不符時,就認為這一項結束。
?如:scanf(“%d%c,%d”,&a,&b,&c);
?如果輸入如下信息:12r12則scanf函數(shù)在接收數(shù)據(jù)時發(fā)現(xiàn)”r”類型不匹配,于是把
?12賦值給a,把”r”賦給變量b,最后把12賦給c。
?4,隱示分隔符??崭?、制表符’\t’,換行符/回車鍵’\n’都是C語言認定的數(shù)據(jù)分隔
?符。

注意

1,scanf函數(shù)不能控制精度 如 scanf(“3.2%”,&a);
這樣是錯誤的
2,在使用scanf函數(shù)后,緩沖區(qū)可能會存有’\n’,這樣如果使用getchar/gest時會直接把’\n’進行賦值,這時可以使用
1, 使用 getchar();來吃掉這個換行鍵
2,使用 fflush(stdin); 來清空緩沖區(qū);

原文鏈接:https://blog.csdn.net/aoeaoao/article/details/115921447

欄目分類
最近更新