因此输入文件看起来类似于此文件,它可以是任意的..:

000001000101000
010100101010000
101010000100000

我需要能够找到输入文件中的行和列的数量,然后才能开始将文件读取到2d数组中,而且我不知道这样做是否正确:
char c;
fin.get(c);
COLS = 0;

while ( c != '\n' && c != ' ')
{
    fin.get(c);
    ++COLS;
}

cout << "There are " << COLS << " columns in this text file" << endl;


ROWS = 1;
string line;
while ( getline( fin, line ))
    ++ROWS;


cout << "There are " << ROWS << " rows in this text file" << endl;

如果这不是正确的方法,或者有更简单的方法,请帮助我。

我也无法使用STRING库

最佳答案

我们可以通过以下方式更快地阅读它:

// get length of file:
fin.seekg (0, is.end);
int fileSize = fin.tellg();
fin.seekg (0, fin.beg);

std::string s;
if( getline( fin, s)) {
  cols = s.size();
  rows = fileSize/(cols+1);  // cols+1 to count also '\n' at the end of each line
}

关于c++ - 如何从输入文件中找到未知数量的行和列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22002124/

10-11 21:30