c++ - 输入关系数组

标签 c++ vector input

我正在尝试输入一个表示关系的二进制数组。例如,数组:

001
000
100

会输出 (0,2),(2,0)

为此,我尝试一次从输入中获取一个字符,然后根据遇到的换行符更改计数器。

到目前为止,这是我的代码。

char inChar;
int x = 0;
int y = 0;
while (inChar = ins.get() != '$') { 
        //$ is used to terminate input
        vector <int> orderedPair;
        if(inChar == '\n') {
            y++;
            x=0;
        } else {
            x++;
        }
        cout << inChar;
        int isPair = inChar - '0';
        if(isPair == 1){
            orderedPair.push_back(x);
            orderedPair.push_back(y);
            pointsList.push_back(orderedPair);
            orderedPair.clear();
        }

}

然而,那条 cout 行只是输出……笑脸?不管我输入什么,我只会得到笑脸。我在这里迷路了。我一直在寻找任何意外分配,我认为这可能是我的类型转换的问题,但那是后来的事。

最佳答案

inChar = ins.get() != '$' 表示inChar = (ins.get() != '$') 读取的字符是否为是否等于 '$' 将被存储到 inChar 而不是字符本身。您可以使用 (inChar = ins.get()) != '$' 来保存输入并检查输入是否为 '$'

另请注意,orderedPair 将在每次迭代时被清除,因为它被声明为 block 的局部变量,因此您不需要 orderedPair.clear(); .

关于c++ - 输入关系数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37042798/

相关文章:

c++ - 保留一份 future 要做的工作 list

c++ - 在这种情况下是否可以避免复制 lambda 仿函数?

c++ - 将对象的地址推送到 vector 后更改对象

html - 如何制作一个带有文字+图片的提交按钮?

jquery - 自动调整输入及其邻居输入的问题

c++ - 单独输入线程上的 OpenGL 无效操作错误

c++ - 多米诺路径算法

c++ - 在 C++ 中使用 std::vector 访问元素(get 和 put)

c++ - 当元素是指针或引用时,连续内存 vector 没有优势吗?

perl - IO::Prompter - 是否可以禁用历史记录?