在 C++ 中逐行处理文件,其中一行是字符串,第二行是浮点数数组

Process file by line in C++ where one line is string and second is array of floats

我有这个文件格式:

Jane Doe
10 3.1 8 7.4 5 10 6 8 0.1 2

我想逐行读取文件,第一行存储在一个字符串中,第二行是一个浮点数数组。

string name;
double scores[10];

ifstream scoreFile;
scoreFile.open(SCORES_FILENAME);

if (scoreFile) {
        
        while (getline (scoreFile,line)) {
            // ??
        }
    scoreFile.close();
    }

我该怎么做?

可以用一个std::istringstream来解析数组,eg:

string name, line;
double scores[10];

...

getline(scoreFile, name);

getline(scoreFile, line);
std::istringstream iss(line);
for(int i = 0; (i < 10) && (iss >> scores[i]); ++i);