簡體   English   中英

輸入來自Kernighan和Ritchie的例子

[英]Input for examples from Kernighan and Ritchie

在第2版的第1.5.2節中。 K&R介紹了getchar()和putchar(),並給出了一個字符計數,然后是行計數以及本章其他內容的示例。

這是字符計數程序

#include <stdio.h>
main() {

long nc;

nc = 0;
while (getchar() != EOF)
    ++nc;
printf("%ld\n",nc);
}

輸入應該來自哪里? 鍵入終端命令窗口並按Enter鍵為文件復制程序工作但不是為此。 我正在使用XCode for Mac。

看起來最簡單的方法是讀取帶有“pathway / folder / read.txt”路徑的文本文件,但我也遇到了麻煩。

從交互式命令行,按下Ctrl-d換行符后,或CTRL-D兩次換行之后,以終止輸入。 然后程序將看到EOF並顯示結果。

要按路徑傳遞文件,並避開交互式部分,請使用shell的< redirection operator,。 ./count_characters < path/to/file.txt

標准C輸入功能僅在您按下Enter鍵時開始處理您鍵入的內容IOW。您按下的每個鍵都會向系統緩沖區(shell)添加一個字符。然后當該行完成時(即按Enter鍵),這些字符被移動到C標准緩沖區。 getchar()讀取緩沖區中的第一個字符,該字符也將其從緩沖區中刪除。每次連續調用getchar()讀取並刪除下一個字符,依此類推。 如果你沒有讀到鍵入緩沖區的每個字符,而是輸入另一行文本,那么下一次調用getchar()將繼續讀取前一行留下的字符; 你通常會看到這個程序超過你的第二個輸入。 順便說一句,Enter鍵的換行符也是一個字符,也存儲在鍵盤緩沖區中,所以如果要讀入新輸入,首先需要清除鍵盤緩沖區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM