我是C ++的新手。我在网上看到了这个代码。按下ENTER后,程序没有输出任何结果。为什么会这样?有人可以帮帮我吗?提前感谢您的帮助!
int main(){
const string hexdigits = "0123456789ABCDEF";
cout << "enter a series of numbers between 0 and 15 separated by spaces. Hit ENTER when finished: "
<< endl;
string result;
string::size_type n;
while(cin >> n){
if(n < hexdigits.size()){
result += hexdigits[n];
}
}
cout << "your hex number is: " << result << endl;
}
我已输入输入:
12 0 5 15 8 15
答案 0 :(得分:2)
您的输入循环将继续读取整数,直到输入流关闭或遇到无法解析为整数的内容。每个值由任何空格分隔,其中包括换行符。
如果您想为输入的每个行输出新内容,可以使用std::getline
首先阅读字符行,然后从std::istringstream
读取:
string line;
while( getline( cin, line ) )
{
istringstream iss( line );
string result;
string::size_type n;
while(iss >> n){
if(n < hexdigits.size()){
result += hexdigits[n];
}
}
cout << "your hex number is: " << result << endl;
}