форматирование строк в TXT-файле (C ++) - PullRequest
0 голосов
/ 06 ноября 2018

unformatted_grades.txt: An image of the Unformatted Grades file

formatted_grades.txt: An image of the Formatted Grades file

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

Ex: Метод read_grade_file имеет параметр int number_of_students
Первая строка файла: "number_of_students 9"

Я открыл и прочитал файл и вставил каждую отдельную строку в строковый вектор.

Как мне получить число 9 в первой строке само по себе, чтобы я мог сделать параметр number_of_students равным ему ??? Пожалуйста помоги.

(нам разрешено пропускать или удалять любые ненужные данные из вектора).

Мой код:

void Read_Grade_File(string names[MAX_CLASS_SIZE][2], int scores[MAX_CLASS_SIZE][MAX_NUMBER_OF_ASSIGNMENTS], int *number_of_students, int *number_of_assignments, const string input_filename) {

    string currline; // temporarily holds the content of each line read from the file
    ifstream inFile; // filestream
    vector<string> content; // vector containing each string from the file

    inFile.open(input_filename); //open the file.

    if (inFile.is_open()){
        // reads file and pushes the content into a vector
        while(!inFile.eof()){
            getline(inFile, currline);
            if(currline.size() > 0){
                    content.push_back(currline);
                }
            }
        }
        // prints the content stored in the vector
        for (int i = 0; i < content.size(); i++){
            cout << content[i] << endl;
        }

    }

1 Ответ

0 голосов
/ 06 ноября 2018

Вместо того, чтобы читать всю строку сразу, может оказаться более целесообразным читать различные значения в строке по мере продвижения. Например, если вы знаете формат файла, вы можете прочитать имя первой переменной, а затем прочитать значение переменной следующим образом:

std::string variableName;
int variableValue;
inFile >> variableName;
inFile >> variableValue;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...