在.txt文件中设置字符串格式(C ++)

时间:2018-11-06 01:23:25

标签: c++ file format

unformatted_grades.txt: An image of the Unformatted Grades file

formatted_grades.txt: An image of the Formatted Grades file

我正在做一个作业,我的教授希望我打开并阅读其中带有不同字符串的.txt文件。我们应该格式化文件的内容。

例如: 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 :(得分:1)

与其一次读取整行,不如直接读取行上的各种值,这可能更有意义。例如,如果您知道文件的格式,则可以读取第一个变量的名称,然后读取变量的值,如下所示:

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

因此,您可以获取名称已知的变量,找到它们的值,然后循环遍历读取的许多记录中的其余文件。