我如何在这个 while 循环中得到这个 getchar() 函数到 return 一个值? (C)
How do I get this getchar() function inside this while loop to return a value? (C)
所以我不熟悉 C 中的 getchar() 函数(因为我是编程新手)。
我想知道如何使下面的代码获取多个字符(无论是通过文件还是通过键盘输入)并使用具有 getchar() 函数的 while 循环对它们进行计数。
我希望它一直读到文件末尾(或键盘输入)。
截至目前,代码没有 return 任何内容(即使您在命令行中键入)。
OS 我是 运行 此代码来自 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;
}
原则上,您的代码有效。对于输入 This is a test.
后跟换行符,然后是 end-of-file,您的程序具有以下输出:
WELCOME TO WHILE CHARACTER COUNTER: WRITE ANY CHARACTER:
Number of:blank characters = 3, digits = 0, letters = 11
Other characters = 2
单击 this link 以使用该输入自行测试您的程序。
我怀疑你的问题是以下之一:
您不知道如何以从文件重定向输入的方式执行您的程序。
你不知道如何在键盘上输入end-of-file。
为了以从文件重定向输入的方式调用您的程序,在大多数操作系统上,您可以按以下方式调用您的程序:
myprogramname < inputfile.txt
当您从 terminal/console 读取输入时,您可以按以下方式输入 end-of-file:
- 在 Linux 上,您可以使用键盘组合 CTRL+D.
- 在 Microsoft Windows 上,您可以使用键盘组合 CTRL+Z.
所以我不熟悉 C 中的 getchar() 函数(因为我是编程新手)。
我想知道如何使下面的代码获取多个字符(无论是通过文件还是通过键盘输入)并使用具有 getchar() 函数的 while 循环对它们进行计数。
我希望它一直读到文件末尾(或键盘输入)。
截至目前,代码没有 return 任何内容(即使您在命令行中键入)。
OS 我是 运行 此代码来自 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;
}
原则上,您的代码有效。对于输入 This is a test.
后跟换行符,然后是 end-of-file,您的程序具有以下输出:
WELCOME TO WHILE CHARACTER COUNTER: WRITE ANY CHARACTER:
Number of:blank characters = 3, digits = 0, letters = 11
Other characters = 2
单击 this link 以使用该输入自行测试您的程序。
我怀疑你的问题是以下之一:
您不知道如何以从文件重定向输入的方式执行您的程序。
你不知道如何在键盘上输入end-of-file。
为了以从文件重定向输入的方式调用您的程序,在大多数操作系统上,您可以按以下方式调用您的程序:
myprogramname < inputfile.txt
当您从 terminal/console 读取输入时,您可以按以下方式输入 end-of-file:
- 在 Linux 上,您可以使用键盘组合 CTRL+D.
- 在 Microsoft Windows 上,您可以使用键盘组合 CTRL+Z.