換行符處理
輸入大寫字母,列印出小寫字母。
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;
多次輸入的會被該迴圈截停,留在緩衝區,等待下一次輸出,直到輸入一個換行符,該迴圈結束,開始進入下一步。
這是一個方法好的,可以阻止換行符。
相關文章
- 解析PHP處理換行符的問題PHP
- 【問題處理】使用trim和 replace處理字串中的換行符號字串符號
- Linux 轉換換行符Linux
- **PHP中替換換行符PHP
- 【換行符】Windows、Unix、Mac不同作業系統的回車符 和換行符 WindowsMac作業系統
- oracle 回車、換行符Oracle
- 批處理中的符號符號
- 替換SQL欄位中的換行符,回車符,空格等特殊符號SQL符號
- HTML換行符和水平線HTML
- .net 預處理指令符的使用
- Room & Kotlin 符號的處理OOMKotlin符號
- MyBatis Like查詢處理%_符號MyBatis符號
- 批處理特殊符號 萬用字元與轉義符符號字元
- oracle中去掉文字中的換行符、回車符、製表符Oracle
- c#換行符及空格符(轉義字元)C#字元
- Java 檔案換行符識別與轉換Java
- GitHub 第一坑:換行符自動轉換Github
- ECharts圖座標軸文字換行問題處理Echarts
- windows批處理之六-echo輸出不換行Windows
- 問題:mybatis like 佔位符處理MyBatis
- windows bat系列9:for處理案例三 單行按指定分隔符分割WindowsBAT
- Bash技巧:把變數賦值為換行符,判斷檔案是否以換行符結尾變數賦值
- oracle中去掉文字中的換行符、回車符、製表符小結Oracle
- JSF的outputText時,無法處理換行問題JS
- gvim中換行符(Enter鍵)的操作
- git 多平臺統一換行符Git
- PhpWord 如何輸出換行符到 word?PHP
- sed格式化excel的換行符Excel
- sed 取消檔案中的換行符
- js將文字框的內容回車換行符轉換為<br/>換行JS
- 關於特殊符號&與& 的處理符號
- mybatis的mapper的特殊符號處理MyBatisAPP符號
- sqlldr同時處理兩種分隔符SQL
- sed處理變數替換變數
- Java在字串中新增或列印換行符Java字串
- linux下的製表符和換行Linux
- 微信小程式實現轉義換行符微信小程式
- sqlldr 裝載換行符(使用str屬性)SQL