我有一个包含以下行的输入文件:
15 14 13 12 11 30 29 28 27 26 45 44 43 42 41 60 59 58 57 56 75 74 73 72 71
25个整数。我试图将整数读成5 * 5的整数数组:
void BingoCard::fill(istream& input)
{
for(int i=0; i<size; i++){
for(int j=0; j<size; j++){
input >> fields[i][j];
}
}
}
打印代码如下所示:
void BingoCard::display(ostream& out) const
{
for(int i=0; i<size; i++){
for(int j=0; j<size; j++){
out << setw(5) << fields[i][j];
}
out << endl << endl;
}
}
但是,当我打印嵌套数组时,只显示第一个数字15
。我究竟做错了什么?
答案 0 :(得分:1)
您可以尝试运行此代码,它可以在我的机器上运行。
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main() {
int ** fields = new int*[5];
int size = 5;
for (int i = 0; i < size; ++i) {
fields[i] = new int[5];
}
ifstream fs("input.txt", std::ifstream::in);
for(int i=0; i<size; i++){
for(int j=0; j<size; j++){
fs >> fields[i][j];
}
}
for(int i=0; i<size; i++){ // this is display(ostream& out)
for(int j=0; j<size; j++){
cout << setw(5) << fields[i][j];
}
cout << endl << endl;
}
}
这是输入文件,
$cat input.txt
15 14 13 12 11 30 29 28 27 26 45 44 43 42 41 60 59 58 57 56 75 74 73 72 71
$file input.txt
input.txt: ASCII text
答案 1 :(得分:0)
事实证明Artemy Vysotsky是对的,我输入文件中的数据不好。我再次输入数据,现在它可以正常工作。谢谢你的帮助!