Читать каждую строку из текстового файла в вектор C ++ - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть текстовый файл, в котором мне нужно иметь возможность добавлять или удалять определенные строки с помощью функций. Все читается из файла, поэтому, когда я открываю файл и что-то пишу, он удаляет все остальное в этом файле. Я понял, что это можно сделать с помощью векторов. Поскольку я новичок в C ++ и особенно в векторах, я не понял, как я могу прочитать каждую строку в векторе, а затем переписать строки в текстовый файл. Может быть, кто-то может порекомендовать мне какую-нибудь веб-страницу или что-нибудь, где я мог бы узнать, как это сделать.

Функция для добавления строки, но она не добавляет новую строку. Он должен прочитать существующие строки в текстовом файле до vector<string> lines и затем вывести его в файл, игнорируя первую строку с lines[i+1], а затем добавить новую контактную информацию в конец за пределами для l oop.

void add contact(string filename, string*& names, string*& emails,
string*& numbers, unsigned int& quantity, string name, string email,
    string number){

string str;
vector<string> lines;

ifstream input(filename);
while(getline(input, str)){
    lines.push_back(str);
}
input.close();

ofstream output("contacts.txt");
output << quantity;
for(unsigned int i = 0; i < quantity; i++){
    output << endl << lines[i+1];
}
output << endl << name << " | " << email << " | " << number << endl;

}

1 Ответ

2 голосов
/ 07 апреля 2020

Это не так сложно. Вам просто нужно получить каждую строку и положить sh в std :: vector.

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

int main()
{
    std::string str ;
    std::vector<std::string> file_contents ;

    std::fstream file;
    file.open("test.txt",std::ios::in);

    while(getline(file, str))
    {
        file_contents.push_back(str) ;
    }

    // You can access it using vector[i]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...