Читать из файла построчно

0

Как я могу читать из текстового файла по строкам, а затем использовать тот же массив, чтобы сохранить их.

  • 0
    Вы говорите, что у вас есть 10 строк - но вы используете массив с 8 возможными записями?
  • 0
    я думал сохранить каждую строку в разные массивы @progsource
Показать ещё 4 комментария
Теги:
fstream

2 ответа

2
Лучший ответ

Во-первых, кажется, что вы используете using namespace std; в вашем коде. Это очень обескураживает. Вот как я бы использовал std::vector. Во-первых, вы должны импортировать заголовочный файл <vector>.

std::ifstream in_file("file.txt");
if (!in_file) { ... } // handle the error of file not existing

std::vector<std::string> vec;
std::string str;

// insert each line into vec
while (std::getline(in_file, str)) {
    vec.push_back(str);
}

std::ifstream .close() обрабатывается в своем деструкторе, поэтому нам не нужно его включать. Это чище, читается больше как английский, и нет волшебных констант. Кроме того, он использует std::vector, что очень эффективно.

Изменить: изменение с помощью std::string[] качестве каждого элемента:

std::ifstream in_file("file.txt");
if (!in_file) { ... } // handle the error of file not existing

std::vector<std::string[]> vec;
std::string str;

// insert each line into vec
while (std::getline(in_file, str)) {
    std::string array[1];
    array[0] = str;
    vec.push_back(array);
}
  • 0
    Я вроде понимаю, что вы говорите, но я никогда не использовал, у вас есть идеи, если я должен сохранить каждую строку в другой массив.
  • 1
    Почему вы хотите, чтобы каждая std::string была в другом массиве?
Показать ещё 16 комментариев
0

Ссылка на getline говорит, что данные добавляются к строке

Each extracted character is appended to the string as if its member push_back was called.

Попробуйте сбросить строку после чтения

редактировать

Каждый раз, когда вы вызываете getline, строка сохраняет старый контент и добавляет новые данные в конец.

line = "";

Сброс данных между каждым считыванием

  • 0
    извини я не понимаю
  • 0
    теперь вы думаете, если бы я лучше сохранил каждую строку в другом массиве? потому что я хочу использовать этот массив в мой класс объекта

Ещё вопросы

Сообщество Overcoder
Наверх
Меню