使用字符循环while循环

时间:2016-07-25 08:44:16

标签: c++11

我需要以下代码段的帮助:

使用string in以下循环终止:

int main() {
string in;
while(1){
    cin >> in;
    if (in == "|")
        break;
}

但是使用int in以下循环不会终止:

int main() {
int in;
while(1){
    cin >> in;
    if (in == '|')
        break;
    else 
        cout<< in << "\n";
}

我想终止最后显示的代码段。是否可以使用int in。 我看过帖子C++ Terminate loop using a char input to int但没有解决方案。

2 个答案:

答案 0 :(得分:0)

虽然字符在计算机中表示为小整数,但ListViewComponents不同。不是用C ++。

当您读入ConcreteAttribute1变量时,ObservableCollection运算符会尝试将输入解析为整数,作为数字而不是字符。

如果你想读一个字符,那么一个字符:

int

如果您尝试读取整数,并且输入不是数字,则输入运算符将失败。参见例如this very simple example

答案 1 :(得分:0)

这是我使用的方法

我需要使用while循环无限地将整数输入向量,并使用字符将其终止。 这种方法将输入作为字符,然后将此char转换为整数。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    char in;
    std::vector<int> vec;
    while(1){
        cin>>in;
        if(in == '|'){
            break;
        }
        vec.push_back(in - '0');
    }
    
    for(int j=0; j<vec.size(); j++){
    cout<<vec[j];}
    
    return 0;
}