網站首頁 編程語言 正文
scanf的用法
scanf從緩沖區(qū)讀取數據,每次讀取一個數據,如果緩沖區(qū)中無內容,則出現堵塞,在運行窗口要求用戶輸入;
scanf("%d%d", &a, &b);
如果a和b都被成功讀入,那么scanf的返回值就是2
如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為EOF。
且返回值為int型
一,scanf可以通過鍵盤輸入數據到變量中,它的格式有以下兩種
1,scanf(“輸入控制符”,輸入參數);
%d 讀入十進制整數
%o 讀入八進制整數
%x,%X 讀入十六進制整數
%c 讀入一個字符
%s 讀入一個字符串
%f,%F,%e,%E,%g,%G 用來輸入實數,可以用小數形式或指數形式輸入。
%u 讀入一個無符號十進制整數
h用于d,o,x前,指定為short
l用于d,o,x前,指定為long,用e,f 前指定為double
2,scanf(“非輸入控制符 輸入控制符”,輸入參數);
?非控制符一定要原樣輸入,還有注意如果非輸入控制符中有字符
?的話,在輸入的時候不要忘記切換到英文輸入法來輸入英文字符
?在賦值的時候如果用中文輸入法輸入了‘ ,’,結果就成了這樣
二,通過scanf進行賦值
? ?1,指定輸入數據所占列寬scanf(“%3d%3d”,&a,&b)
? ? ? ? 輸入:123456系統(tǒng)自動將123賦給a,456賦給b? ? ??
? ?2,%后面加‘*’用來抑制輸入。scanf(“%2d%*3d%2d”,&a,&b)
? ?輸入:1234567。將12賦給a,67賦給b。個數據”345”被跳過不賦給任何變量。? ?
?3, ?輸入數據流分隔。根據格式字符的含義從輸入流中取得數據,當輸入流中數
?據類型與格式字符要求不符時,就認為這一項結束。
?如:scanf(“%d%c,%d”,&a,&b,&c);
?如果輸入如下信息:12r12則scanf函數在接收數據時發(fā)現”r”類型不匹配,于是把
?12賦值給a,把”r”賦給變量b,最后把12賦給c。
?4,隱示分隔符。空格、制表符’\t’,換行符/回車鍵’\n’都是C語言認定的數據分隔
?符。
注意
1,scanf函數不能控制精度 如 scanf(“3.2%”,&a);
這樣是錯誤的
2,在使用scanf函數后,緩沖區(qū)可能會存有’\n’,這樣如果使用getchar/gest時會直接把’\n’進行賦值,這時可以使用
1, 使用 getchar();來吃掉這個換行鍵
2,使用 fflush(stdin); 來清空緩沖區(qū);
原文鏈接:https://blog.csdn.net/aoeaoao/article/details/115921447
相關推薦
- 2022-09-10 Python實現自定義異常堆棧信息的示例代碼_python
- 2022-12-10 Input系統(tǒng)之InputReader概要性實例分析_Android
- 2022-07-19 Linux應該怎么使用命令
- 2022-05-02 C++?多繼承詳情介紹_C 語言
- 2022-03-16 Oracle表空間管理和用戶管理介紹(oracle表空間與用戶的關系)
- 2022-02-28 VM2551:1 Component “pages/tabs/cates“ does not hav
- 2023-01-31 基于C#實現FTP下載文件_C#教程
- 2023-04-10 Python中mmap模塊處理大文本的操作方法_python
- 最近更新
-
- 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)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支