換行符處理
輸入大寫字母,列印出小寫字母。
input:A
Boutput:a
b
這是一個極為簡單的題,但其裡面的某些東西,卻值得我們深究。
先寫程式碼吧,我們再討論裡面的知識。
#define _CRT_SECURE_NO_WARINGS
#include <stdio.h>
int main(void)
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
printf("%c\n", ch + 32);
getchar();//清理換行符
}
return 0;
}
複習一個緩衝區的概念。
輸入大寫字母,‘A’,A並不會直接輸出到螢幕,而是會傳送到一個叫緩衝區的地方。待輸入結束,再將輸出值列印到螢幕。而諾輸入一個A,再【Enter】,就會相當於輸入了A和’\n‘,進入緩衝區,再運算後列印。 而\n也會運算後列印,達不到輸出效果。需要隔離\n,並進入下一個迴圈。而未處理,據相當於兩次迴圈,A與\n都進入迴圈(兩次)。我們要做的是防止\n開啟並進入新的迴圈。getchar(),讀取\n,並進入下一個迴圈,再次讀取字元且判斷條件是否為真。【Enter】也是一個字元,‘\n’。這種型別的方法可以處理\n.防止被讀入。
還有一種迴圈處理,多用於函式中處理多個輸入。
while ((scanf("%d", &a)) != '\n')
coutinue;
多次輸入的會被該迴圈截停,留在緩衝區,等待下一次輸出,直到輸入一個換行符,該迴圈結束,開始進入下一步。
這是一個方法好的,可以阻止換行符。
相關文章
- Linux 轉換換行符Linux
- 【換行符】Windows、Unix、Mac不同作業系統的回車符 和換行符 WindowsMac作業系統
- grep 匹配製表符 和 換行符
- Room & Kotlin 符號的處理OOMKotlin符號
- vim顯示換行符
- .net 預處理指令符的使用
- 問題:mybatis like 佔位符處理MyBatis
- Java 檔案換行符識別與轉換Java
- ECharts圖座標軸文字換行問題處理Echarts
- windows bat系列9:for處理案例三 單行按指定分隔符分割WindowsBAT
- 關於特殊符號&與& 的處理符號
- Bash技巧:把變數賦值為換行符,判斷檔案是否以換行符結尾變數賦值
- gvim中換行符(Enter鍵)的操作
- git 多平臺統一換行符Git
- python實現readline去掉換行符nPython
- python Django框架符號衝突怎麼處理?PythonDjango框架符號
- Java在字串中新增或列印換行符Java字串
- python3迴圈中如何加入換行符?Python
- Linux - 回車符和換行符及其在不同系統上的區別Linux
- 正規表示式.號元字元(除了回車符\r和換行符\n)字元
- Python 編碼轉換與中文處理Python
- 【影像處理筆記】小波變換筆記
- 違規行為處理
- 並行處理 Parallel Processing並行Parallel
- 影像行畫素處理
- iOS換膚功能的簡單處理框架iOS框架
- Java SimpleDateFormat處理日期與字串的轉換JavaORM字串
- bat批處理轉換成exe檔案BAT
- nodejs“並行”處理嘗試NodeJS並行
- Java 中的並行處理Java並行
- DataFrame儲存為hive表時的換行符問題Hive
- Vue 事件處理 傳參 以及事件的修飾符 的學習Vue事件
- MatLab 基本影像處理(3)——函式變換Matlab函式
- java日期時間各種變換及處理Java
- LangChain轉換鏈:讓資料處理更精準LangChain
- 將檔案的行結束符由 CRLF 轉換為 LF
- mysql 5.7 執行緒阻塞處理MySql執行緒
- ArcGIS Desktop 工具的並行處理並行