此问题已在此处有答案:
Capture characters from standard input without waiting for enter to be pressed(21个回答)
5天前关闭。
我有一个程序可以告诉你一个段落中的字符和元音的数量。
下面是代码
#include <iostream>
using namespace std;
int main()
{
cout<<"Enter your paragraph\nTo finish press 'ESC'\n\n";
//27 Is The ESC Button In ASCII
char s[500];
cin.getline(s, 500, 27);
//Vowel and Character counters
long long vowels = 0, characters = 0;
for(int i = 0; i<500; i++) s[i] = tolower(s[i]);
for(int i = 0; i<500; i++) {
if(s[i] == 'a'||s[i] == 'e'||s[i] == 'i'||s[i] == 'o'||s[i] == 'u'||s[i] == 'y')vowels++;
if(s[i] >= 32 && s[i] <= 126) characters++;
}
cout<<"The amount of characters: "<<characters<<"\nThe amount of vowels: "<<vowels<<'\n';
}
如何使用户按下ESC时,立即输出**(Mac上)?
当用户按下ESC时,它应该打印段落中的字符数和元音数,但当用户按下ESC**时,实际上必须按enter才能输出。
1条答案
按热度按时间px9o7tmv1#
除非按Esc键是你作业的一部分,这是不寻常的,否则我建议你简单地按照一个非常常见的标准来构造:
读取字符,直到用户按下一个换行符,紧接着又按下另一个换行符。然后,您的提示将变得非常简单:
否则,你应该按照链接的帖子在Linux系统上操作“原始”与“熟”输入。