读取文件中传递的值

Reading a value that is passed in a file

本文关键字:文件 读取      更新时间:2023-10-16

我正在阅读C 中的一个文件,我按空格分开值,然后像这样输入

1 2
3 4
5 6

我正在检查第二部分,如果是6,我想 cout整个行。

5 6

代码样本:

ifstream f;
f.open("sample.txt");
f>>check;
if(check==6){
    cout << check;
}

如何打印整行而无需存储?要明确我只想打印当前值和最后一个值。

因为您想比较数据,然后根据比较结果做点什么,您可以 not 避免将它们存储在某个地方。

如果要打印整个行,则必须存储它:

struct Record
{
  int first;
  int second;
  std::istream& operator>>(std::istream& input, Record& r);
};
std::istream& operator>>(std::istream& input, Record& r)
{
  input >> r.first;
  input >> r.second;
};
//...
Record r;
while (f >> r)
{
  if (r.second == 6)
  {
    std::cout << r.first << " " << r.second << "n";
  }
}

在上面的代码中,我使用struct建模输入行。读取和存储两个值。当第二个值为6时,第一个和第二个值是输出。

您不需要struct,但是可以使用两个变量:

int first;
int second;
while (f >> first >> second)
{
  if (second == 6)
  {
    std::cout << first << " " << second << "n";
  }
}