Ниже приведен фрагмент файла у меня есть:прочитанной Интс из файла в массив 3D
23 //clump1.A
45
21
24 //clump1.B
235
212
2315 //clump2.A
123
14
1234 //clump2.B
213
123
213
3112 //clump3.A
323
4214
Я показал примерно 3-4 в каждом «комок», однако есть 74 числа в каждой глыбе , Существует 2 «скопления» для каждого двойного абзаца, разделенные сгустками чисел, для которых имеется 4192 больших скопления.
мне нужно следующий массив будет построен:
int array[4192][2][74],
, например, array[2][0][1] = 3112
из приведенного выше примера.
Как я могу прочитать этот файл и получить их в правильных точках массива. Использование istringstream
дает мне ошибку seg.
Я использую подобный код, как Read integers from a file into array
Пожалуйста, дайте мне знать, если я должен уточнить.
while(std::getline(file, line)){
std::istringstream input(line);
for(j=0; j<2; j++){
for(k=0; k<NUM_REGIONS; k++){
input >> history[i][j][k][0];
}
}
i++;
}
С этим, как я могу пропустить символы новой строки, а также обеспечить два новых символов строки в строке вызывает я ++ произойти.
Я не вижу логики в 'array [2] [0] [1] == 3112'. Вы можете объяснить? – 0x499602D2
Это просто назначение значения для коррекции ячейки. 3112 находится в третьем «скоплении» (следовательно, 2), первом подкомплекте (следовательно, 0) и первом номере. Ну, действительно, это тоже должно быть 0, если только эта часть массива не индексируется с 0. – pkubik