所以我不熟悉 C 中的 getchar() 函式(因為我是編程新手)。
我想知道如何使下面的代碼采用多個字符(無論是通過檔案還是通過鍵盤輸入)并使用具有 getchar() 函式的 while 回圈對它們進行計數。
我希望它一直讀到檔案(或鍵盤輸入)結束。截至目前,代碼沒有回傳任何內容(即使您在命令列中輸入)。
我運行此代碼的作業系統是 Windows。
#include <stdio.h>
int main(void){
int blanks = 0, digits = 0, letters = 0, others = 0;
int c; //use for actual integer value of character
printf("WELCOME TO WHILE CHARACTER COUNTER: WRITE ANY CHARACTER:\n");
while ((c = getchar()) != EOF){
if (c == ' ') //counts any blanks on a text
blanks;
else if (c >= '0' && c <= '9')
digits;
else if (c >= 'a' && c <= 'z' || c >= 'A' && c<= 'Z')
letters;
else
others;
}
printf ("\nNumber of:blank characters = %d, digits = %d, letters = %d", blanks, digits, letters);
printf ("\nOther characters = %d", others);
return 0;
}
uj5u.com熱心網友回復:
原則上,您的代碼有效。對于This is a test.后跟換行符和檔案結尾的輸入,您的程式具有以下輸出:
WELCOME TO WHILE CHARACTER COUNTER: WRITE ANY CHARACTER:
Number of:blank characters = 3, digits = 0, letters = 11
Other characters = 2
單擊此鏈接以使用該輸入自行測驗您的程式。
我懷疑您的問題是以下問題之一:
您不知道如何以從檔案重定向輸入的方式執行程式。
您不知道如何在鍵盤上輸入檔案結尾。
為了以輸入從檔案重定向的方式呼叫您的程式,在大多數作業系統上,您可以通過以下方式呼叫您的程式:
myprogramname < inputfile.txt
當您從終端/控制臺讀取輸入時,您可以通過以下方式輸入檔案結尾:
- 在 Linux 上,您可以使用鍵盤組合CTRL D。
- 在 Microsoft Windows 上,您可以使用鍵盤組合CTRL Z。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/448229.html
下一篇:從“longlongunsignedint”到“longlongunsignedint:40”的轉換將值從“0xFFFFFFFFFFFFFFFF”更改為“0xFFFFFFFFFF”[-Werror=o
