У меня есть текстовый файл, который выглядит так:
6
1 2 3 4 5 6
1 2
1 4
1 5
2 3
2 5
2 6
3 4
3 6
4 5
5 6
Я использую следующее для чтения строк файла в мои переменные и массивы:
//Read first line
if( std::getline(in, line))
{
std::istringstream iss(line);
while( iss >> a);
}
// read second line
int i = 0;
if( std::getline(in, line) )
{
std::istringstream iss(line);
while( iss >> b[i] )
{
++i;
}
}
// read rest of file matrix
int x = 0;
while( !in.eof())
{
if( std::getline(in, line))
{
std::istringstream iss1(line);
while( iss1 >> c[x])
{
++x;
}
}
}
В приведенном выше коде a
- это int, b
и c
- это массивы int, in
- это оператор istream, а line
- это std::string
. Однако, похоже, что он работает нормально, когда я std::cout
для переменной и массивов получаю следующее:
6
1,2,3,4,5,6
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
По какой-то причине массив c
кажется заполненным всеми нулями вместо данных из файла. Это странно для меня, так как я читаю первые две строки точно так же, и они, кажется, читают очень хорошо. Есть идеи?