从c ++中的文件的一行获取多个输入

Getting multiple inputs from one line from a file in c++

基本上,我试图从一行代码中获取三件事,从 .txt 文件中读取。这将被重复,但现在我只需要知道如何获得一行。我正在阅读的行如下所示:

Biology                  12

所以我想得到一个字符串和两个整数,并完全忽略 $(注意,我无法更改 .txt 文件,所以我必须将 $ 留在其中)

所以如果我有

string subject;
int biologyscores[25];

我的密码是:

int biologyscores[25]; //array to store the integer values
std::string subject;   //string to store the subject the scores are for
std::ifstream infile("myScores.txt"); //declare infile to read from "myScores.txt"

infile >> subject >> biologyscores[0] >> biologyscores [1];  //read into string and int array

因此该字符串将用于检查这些分数是针对哪个科目的,分数本身将存储在数组 biologiesscores 中,彼此相邻索引。

问题是在这段代码执行后,subject = "Biology" 是我想要的,但是索引 0 和 1 处的 biologiesscores 似乎都有垃圾数字,不是我想要读入的。

您可以使用一个虚拟字符变量来“拾取”$ 字符:

char dummy_char;
infile >> subject >> dummy_char >> biologyscores[0] >> biologyscores [1];  //read into string and int array

您可以使用 seekgtellg

    std::fstream infile("myScores.txt"); //declare infile to read from "myScores.txt"
int temp;
infile >> subject;   //read into string 
temp=infile.tellg(); //to get the position of $
infile.seekg(temp+1);// to move one step forward 
infile>> biologyscores[0] >> biologyscores [1];//now you can read the int values