Cin字符并将它们插入到2d数组中



我想从使用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),但似乎不起作用。下面是我运行脚本的方式:input.txt

Thanks in advance

在头脑中运行脚本。看看它提供了什么输出。您将清楚地看到,您永远不能引用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循环——更容易管理

相关内容

  • 没有找到相关文章

最新更新