从文件c ++输入时黑屏

Blank Screen while inputting from file c++

所以我正在做我的项目,但我遇到了一个问题。每次我尝试从 C++ 文件中输入数据时,我都会出现黑屏

代码:

int main() {

string make[1000],model[1000],partName[1000];
int partNo[1000],quantity[1000];
double price[1000];
int i = 0;

ifstream myFile("file.txt");
while (!myFile.eof())
{
    myFile >> make[i] >>model[i]>> partNo[i] >>quantity[i]>> price[i]>>partName[i];
    i++;
}
for (int j = 0;j < i;j++)
    cout << make[j] <<"\t"<<model[j]<<"\t"<< partNo[j] <<"\t"<<quantity[j]<<"\t"<< price[j]<<"\t"<<partName[j]<<endl;
    return 0;

}

来自数据文件的样本:

Pajero  NA1H25    1     26      3.65     BLADE W/S WIPER
Pajero  NA1S25    2     12      65.7     OIL SEAL-T/M CASE
Pajero  NA3H25    3     20      14.6     OIL SEAL-DIST
Pajero  NA3H25    4     26     10.95     DISC-CLUTCH
Pajero  NC3V25    5     13      14.6     FUSIBLE LINK
Pajero  ND0000    6     12      3.65     WEATHERSHIELD PKGE-L
Pajero  ND1V45    7     10     32.85     SEAL & BOOT KIT
Pajero  ND1Z45    8     24     62.05     FUSIBLE LINK
Pajero  ND1Z45    9      9     18.25     COVER-HANDLE LH
Pajero  ND1Z45   10      6      3.65     PIPE ASSY-OIL

有人可以帮忙吗??

输入 operator >>std::string 只会读取一个单词。

这意味着第一个输入将读取 "BLADE" 并在输入缓冲区中留下 "W/S WIPER",下一个读取将从那里开始。最终,数字字段的输入操作将尝试读取字母,但无法读取。

在那之后,流处于糟糕的状态并且没有读取任何其他内容,即使 myfile.eof() 不是真的(但 myfile.fail() 是)。那里有一个无限循环。参见 Why is iostream::eof inside a loop condition considered wrong?