cin 字符并将它们插入二维数组
cin chars and insert them into a 2d array
我想使用 cin 和重定向从文件中读取并将它们放入二维数组中。不幸的是,由于输入文件后的空格,我一直遇到段错误(我已经检查过,最后一个字符后没有空格。这就是我所拥有的。
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
提前致谢
运行 你脑子里的剧本。查看它提供的输出。你会清楚地看到你永远不能引用 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 循环 - 更易于管理
我想使用 cin 和重定向从文件中读取并将它们放入二维数组中。不幸的是,由于输入文件后的空格,我一直遇到段错误(我已经检查过,最后一个字符后没有空格。这就是我所拥有的。
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
提前致谢
运行 你脑子里的剧本。查看它提供的输出。你会清楚地看到你永远不能引用 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 循环 - 更易于管理