Я уверен, что это очень простая задача, однако я очень новичок в C++, поэтому для меня это немного сложно.Чтение C++ в текстовом файле в виде матрицы в 2D-массив, сохраняя только числовые блоки
Во всяком случае, у меня есть текстовый файл, который уже находится в форме массива 25x14 (или больше, как только я получу код). К сожалению, некоторые строки имеют только одну запись, которая является словом.
То, что я хочу сделать, это пройти через текстовый файл и отобразить все записи (за исключение строки со словом на них) в простой массив в C++, так что я могу создать гистограммы и т.д.
Я планирую делая это с помощью функции isdigit().
вот что я до сих пор:
using namespace std;
int main()
{
int str;
int matrix[25][14];
ifstream inFile("inputfile.txt");
while (inFile >> str) {
for (int i = 0; i < 25; i++) {
for (int j = 0; j < 14; j++) {
if (isdigit(inFile)) {
inFile >> matrix[i][j];
}
}
}
}
}
Что, безусловно, дает много ошибок. Моя проблема в том, что мне нужна некоторая функция, которая смотрит на файл txt на одно слово (обозначенное пробелами) за раз.
Любые предложения?
Благодаря
Почему бы не проверить 'line.size() = 14' после цикла while и только затем push_back, а не добавлять, а затем тестировать и удалять в конце? – user4581301
Спасибо! Я, наконец, получил его для работы, используя то, что вы предложили, спасибо! – khfrekek
@ user4581301: это для модульности. С помощью этой реализации легко изменить контейнер или изменить ограничения на удаленные строки. Но решение внутри цикла тоже правильно. Фактически, я сделал ошибку в вызове 'std :: remove_if', теперь она исправлена. – Caduchon