ACM中回車的問題
大部分是在網上摘抄的,只有一點點是自己寫的,權當是mark一下。 1.回車的問題 比較四種讀入:字串輸入 getchar(), scanf(“%c”); scanf(“%s”), gets()區別
①&②: 其中getchar() 和 scanf(“%c”)的功能是一樣的。 這兩個函式讀入的是輸入流中當前位置的字元,比如: scanf(“%d”,&n); c = getchar(); 假設輸入 67/ (假設“/”代表回車),則第一個scanf讀入一個整數67後,當前輸入流的位置是67之後,即指向回車符,所以第二個getchar()讀入的就是一個回車符了,即 c = ‘\n’。
③ 同樣,gets()也是從當前位置讀入一行字串。 比如: scanf(“%d”,&n); gets(str); 此時讀入字元陣列中的字串就是“\n” 了 所以通常在用scanf讀入一個非字串的型別之後,如果要讀入字元,或字元陣列,都用一個額外的getchar()把回車符讀掉,若後面跟的不止一個回車符,可能還有多餘的空格的話,就用gets()讀掉。
④ 和以上不同的是,scanf(“%s”) 讀入的時候是會忽略掉空格,回車和製表符的。並且以空格,回車和製表符作為字串結束的標誌。 也就是說,scanf("%s")其實是比較特殊的,它一定會等到所有空白符結束,一直等到它要等的字串出現,它才讀取,在字串出現之前,出現的所有空白符都會忽略掉。
經常會有這樣的題,輸入第一行是一個整數,接下來每行的第一個是一個字元,用來表示某種操作,後面再跟一些資料,比如: 4 A 100 2 B 23 A 23 89 B 34 像這種輸入就需要小心,讀入字元時不要讀成回車符。 為了防止意外,我一般是這樣處理這類輸入的: char model[2]; Scanf(“%d”,&n); for(…,…,…) { scanf(“%s”,model); if(model[0] == ‘A’){} else{} }
無論用cin還是scanf ,讀入字元之後若要再繼續讀入,應消去換行符,可使用scanf("%*c")或者getchar().
相關文章
- scanf的回車干擾問題
- [20210802]cygwin文字回車換行問題.txt
- Spring的事物回滾問題Spring
- 牛客小白月賽100 ACM中的CM題ACM
- 斜率優化(凸包優化)DP問題acm優化ACM
- acm訓練題ACM
- 關於 PayPal 支付回撥的問題
- 關於操作駁回遇到的問題
- 怎樣讓word不顯示回車符號 如何去掉word中的回車符符號
- BFS/acm習題集ACM
- js頁面當中沒有寫回車事件,但是有回車效果JS事件
- 關於ACM中的無窮大ACM
- Redis中的問題Redis
- [20180419]關於閃回的一些問題.txt
- 支付寶支付回撥觸發問題
- go-zero之支付回撥問題Go
- 2019山東ACM省賽補題題解ACM
- 瀏覽器中輸入 URL 回車後瀏覽器
- 關於while(cin)回車結束 和 while(cin)與cin.get()結合時發現的問題While
- 回車與換行的故事
- ACM金牌選手整理的【LeetCode刷題順序】ACMLeetCode
- js中this的指向問題JS
- hibernate中的no session問題Session
- ACM演算法——數學專題ACM演算法
- 【ACM程式設計】動態規劃 第二篇 LCS&LIS問題ACM程式設計動態規劃
- 演算法學習回顧-皇后問題演算法
- 火車票預訂的一些問題
- 車路協同若干痛點問題的思考
- 淺淺的談一下回撥地獄的問題
- Android 回車換行的持久化Android持久化
- laravel使用中遇到的問題Laravel
- Java中的"+"運算問題Java
- aspx中的checkbox 取值問題
- javascript中的各種問題JavaScript
- webpack中babel的配置問題WebBabel
- Hodoop配置中遇到的問題OdooOOP
- linux中ls卡死的問題Linux
- 工作中遇到的問題
- js中的儲存問題JS