網(wǎng)站首頁 編程語言 正文
在學(xué)習(xí)創(chuàng)建二叉樹時遇到了scanf的一些問題,在此記錄下來
創(chuàng)建根節(jié)點A后理想情況是輸入A的左子樹,若不為空繼續(xù)創(chuàng)建左子樹,但輸入A后發(fā)現(xiàn)重復(fù)創(chuàng)建了一個左子樹,測試后發(fā)現(xiàn)輸入A換行后scanf函數(shù)接收了換行符(ASCII碼10)
若想按次序創(chuàng)建各個節(jié)點則需要使用getchar()吸收換行符
?不接收換行符也可以輸入一個完整的二叉樹序列,也可以成功創(chuàng)建。
void CreateBiTree(BiTree &T) { char ch, temp; scanf("%c", &ch); temp = getchar(); //換行輸入則需要吸收換行 if (ch == '#') { T = NULL; return; } else { T = (Tree *)malloc(sizeof(Tree)); T->data = ch; printf("請輸入%c的左子樹:", ch); CreateBiTree(T->lchild); printf("請輸入%c的右子樹:", ch); CreateBiTree(T->rchild); } }
?測試后發(fā)現(xiàn)若有多個scanf()例如
輸入AB換行,多余的scanf會接收換行符。
若是Int類型換行不被接收,因為換行符可以作為字符被接收,
在多個scanf的情況下可以一行輸入多個數(shù)據(jù),會依次接收這些數(shù)據(jù),
?第一行輸入1,2,兩個scanf接收了1,2;
?總結(jié)
Scanf傳遞字符會接收換行符,避免則須在換行時吸收多余傳遞的換行符,(getchar傳遞字符同理),若有多個scanf(如循環(huán),嵌套)允許一次輸入多個數(shù)據(jù),scanf依次接收它們。
原文鏈接:https://blog.csdn.net/qq_45233119/article/details/122246808
相關(guān)推薦
- 2022-08-13 Linux新特性之btrfs文件系統(tǒng)
- 2022-03-31 C#實現(xiàn)單位換算器_C#教程
- 2022-06-14 C語言數(shù)據(jù)類型與sizeof關(guān)鍵字_C 語言
- 2023-02-04 python協(xié)程之yield和yield?from實例詳解_python
- 2022-06-22 Git用戶簽名的修改取消及優(yōu)先級拓展教程_其它綜合
- 2022-05-17 ubuntu解決虛擬機Ubuntu連接不了網(wǎng)絡(luò)(親測)
- 2022-04-25 C#實現(xiàn)簡單串口通信_C#教程
- 2022-06-07 Python批量解壓&壓縮文件夾的示例代碼_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支