#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
int number;
string word;
cout<<"enter a number or a word\n";
while(cin>>number || cin>>word){
if(cin>>number){
cout<<number<<"\n";}
if(cin>>word){
cout<<word<<"\n";}
}
return 0;
}
答案 0 :(得分:2)
格式化提取失败后,您的流处于“失败”状态,您无法轻松地进一步处理它。 总是读取字符串,然后尝试解析它更简单。例如,像这样:
#include <iostream>
#include <string>
for (std::string word; std::cin >> word; )
{
long int n;
if (parse_int(word, n)) { /* treat n as number */ }
else { /* treat word as string */ }
}
您只需要一个解析器功能:
#include <cstdlib>
bool parse_int(std::string const & s, long int & n)
{
char * e;
n = std::strtol(s.c_str(), &e, 0);
return *e == '\0';
}
答案 1 :(得分:0)
好的,您需要先了解cin
和cout
的工作原理。
您的问题的解决方案将是
1) Declare a single string variable eg: var_input
2) Take input only once (using cin>>var_input)
3) Check if the string is a number or a word taking help from Link One