gpt4 book ai didi

C++使用while循环来计算用户输入的字符数

转载 作者:行者123 更新时间:2023-11-30 02:21:23 28 4
gpt4 key购买 nike

编写一个程序,要求从键盘输入文本。该程序的输出应该是已键入的字符数、单词数和换行符数。多个连续空格不应计为多个单词。

当输入关机代码 ^D (CTRL + D) 时,可以停止从键盘读取字符

我的代码是:

int main()
{
char a;
int characters = 0;
int words = 1;
int newlines = 0;
printf("Input something\n");

while ((a = getchar())!=4)
{
if (a >= 'a'&&a <= 'z' || a >= 'A'&&a <= 'Z')
characters++;
else if (a = ' ')
words++;
else if (a = '\n')
newlines++;

}
printf("The number of characters is %d\n", characters);
printf("The number of words is %d\n", words);
printf("The number of newlines is %d\n", newlines);


return 0;
}

我知道 ^D 的 ASCII 值是 4,但在我使用 (a=getchar())!=4 并在屏幕上输入一些单词和 ^D,然后按“enter”后,程序没有“不要显示任何东西。有人可以帮帮我吗。

最佳答案

关于处理问题没有说明的 CtrlD 的关键点是击键是控制台程序的 EOF(文件结束)指示符。这意味着当您键入 CtrlD 时,getchar() 不会返回 4,而是返回特殊值 EOF.

请注意,值 EOF 不是可以放入 char 变量中的值,因此您必须声明 int a 而不是字符a:

int a;

while ((a = getchar()) != EOF)

关于C++使用while循环来计算用户输入的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48373756/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com