嗨,我是新来的,我的工作需要帮助。我想从文件中读取数据。我使用过getline但它不会读取文件中的第一行,有人可以帮我吗? 这是我的代码:
void test(std::ifstream& infile, string& a, string& b, string& c)
{
infile >> a;
infile >> b;
infile >> c;
}
int main()
{
ifstream file_("Level1.txt");
string line;
string a, b, c;
while (getline(file_, line))
{
test(file_, a, b, c);
}
cout << a << " " << b << " " << c;
return 0;
}
在我的档案中:
aa
bb
cc
但输出:
bb cc
答案 0 :(得分:3)
Getline
获取当前行,因此您的字符串看起来像这样
a = "bb"
b = "cc"
c = ""
因为你已经读过第一行并且它存储在line
中。你可以检查文件是否打开然后调用你的测试函数,因为它将从文件的开头开始而不会跳过第一行。
if(file_.is_open())
{
test(file_, a, b, c);
}
答案 1 :(得分:2)