如何退出循环:while(cin>>n) in C++



这是一个计算字符串有多少字母和数字的程序,但是当我在输入后按Enter退出时,它没有响应。

#include <iostream>
using namespace std;
int main()
{
char c;
int nums=0,chars=0;
while(cin>>c){
if(c>='0'&&c<='9'){
nums++;
}else if((c>='A'&&c<='Z')||(c>='a'&&c<='z')){
chars++;
}
}
printf("nums:%dnchars:%d",nums,chars);
return 0;
}

按回车键不终止std::cin的输入,std::cin遇到空格时停止输入。

最好使用std::getlinestd::isdigit,如下所示:

int main()
{

int nums=0,chars=0;
std::string input;
//take input from user 
std::getline(std::cin, input);
for(const char&c: input){
if(std::isdigit(static_cast<unsigned char>(c))){

nums++;
}
else if(std::isalpha(static_cast<unsigned char>(c))){
chars++;

}
}
std::cout<<"nums: "<<nums<<" chars: "<<chars;
return 0;
}

演示

相关内容

  • 没有找到相关文章

最新更新