回車符與換行符問題 C語言

2022-07-03 17:42:09 字數 1879 閱讀 1079

換行對應的ascii碼值是10,回車符對應的ascii碼值是13,需要注意的是

使用者按下回車鍵時,對於不同的字元輸入函式讀取的字元不同,下面上**

測試一:

int

main()

執行結果:

測試二:

int

main()

執行結果:

測試三:

int

main()

執行結果:

測試四:

int

main()

執行結果:

從上面的結果可以看出,雖然輸入都是「回車鍵」(注意是回車鍵不是回車符)但得到結果卻有差異,

需要注意的是:在windows系統中回車鍵被當做\r\n 的組合來使用,當我們從鍵盤輸入回車鍵時,windows系統會把回車鍵當做\r\n 來處理(只不過上面的四種字元輸入函式讀取的結果不同

getchar——換行符'\n'(ascii值為10)

getch——回車符'\r' (ascii值為13)

getche——回車符'\r' (ascii值為13)

scanf——換行符'\n' (ascii值為10)

回車:使游標移到行首

換行:使游標移到下一行

下面再補充下檔案操作函式,從文字檔案(txt檔案)用fscanf_s讀取(前提條件:先建立乙個txt檔案按一下回車鍵,然後儲存)

char

ch;file *fp;

errno_t err;

err = fopen_s(&fp, "

e:\\ww.txt

", "r"

);fscanf_s(fp, "%c

", &ch, sizeof

(ch));

printf(

"%d\n

", ch);

執行效果:

從上面可以看出fscanf_s和scanf對回車鍵的讀取是相同的,都是得到的換行符'\n'(ascii值為10)

使用fgetc讀取

int

main()

return0;

}

執行結果:

從上面的結果可以看出fgetc和fscanf_s讀取的字元相同,都是讀取到的換行符'\n'(ascii值為10)

回車符與換行符的起源

計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決這個問題,就是在每行...

回車符與換行符的起源

計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決這個問題,就是在每行...

C 的換行符和回車符

winform 中 textbox 的 multiline屬性設定為 true 敲入幾個字元和幾個回車,然後儲存到資料庫,再從資料庫中讀取出來賦值給textbox,換行符丟失。將讀取出的字串中的 n 替換為 r n 解決問題。1 textbox 中換行符為 r n 2 windows 中的換行符 即...