網(wǎng)站首頁 編程語言 正文
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
相關推薦
- 2022-10-06 QT獲取顯示當前時間和日期的方法(用QTime,QDate和QDateTime)_C 語言
- 2023-11-17 深度學習中分布式訓練的現(xiàn)狀及未來
- 2023-02-02 Python實現(xiàn)自動生成請假條_python
- 2022-09-20 關于go-zero單體服務使用泛型簡化注冊Handler路由的問題_Golang
- 2022-09-21 go?mod詳細使用教程_Golang
- 2022-09-20 C#中使用async和await實現(xiàn)異步Udp通訊的示例代碼_C#教程
- 2023-01-19 python中的字符串切割?maxsplit_python
- 2022-08-25 如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖_pyt
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支