Как я могу читать из текстового файла по строкам, а затем использовать тот же массив, чтобы сохранить их.
Во-первых, кажется, что вы используете 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);
}
std::string
была в другом массиве?
Ссылка на getline говорит, что данные добавляются к строке
Each extracted character is appended to the string as if its member push_back was called.
Попробуйте сбросить строку после чтения
редактировать
Каждый раз, когда вы вызываете getline, строка сохраняет старый контент и добавляет новые данные в конец.
line = "";
Сброс данных между каждым считыванием