cin chars并将它们插入到2d数组中

时间:2015-09-22 21:18:08

标签: c++ multidimensional-array cin

我想从使用cin和重定向的文件中读取并将它们放入2d数组中。不幸的是,由于输入文件后面有空格,我不断收到段错误(我已经检查过,并且在最后一个字符后面没有空格。这就是我所拥有的。

input.txt

abcd
efgh
ijkl
mnop

这是我的代码片段:

char c; 
int i =0; int j=0;

while(cin >> c){
    ary[i][j] = c; 
    ++i; 
    ++j;
    }

目标是建立一个这样的矩阵:

['a', 'b', 'c', 'd']
['e', 'f', 'g', 'h']
['i', 'j', 'k', 'l']
['m', 'n', 'o', 'p']

有没有办法告诉cin忽略字母p后面的所有空格或换行符?我试过cin.get(c)并且似乎没有做到这一点。以下是我运行脚本的方式:./ executable< input.txt中

提前致谢

1 个答案:

答案 0 :(得分:2)

在脑海中运行脚本。看看它提供了什么输出。你会清楚地看到你永远不会引用ary [0] [1],ary [0] [2]等。

您尝试使用调试器吗?这是一个非常有用的工具。

反正;你需要做一些不同的事情 - 我建议你使用for循环:

for(int i = 0; i < 4; ++i)
{
   for(int j = 0; j < 4; ++j)
   {
       std::cin >> tab[i][j];
   }
}

通常,如果您在标签上操作或输入固定大小(如您的),则需要使用for循环 - 更易于管理