繁体   English   中英

在读取文件(ifstream)时,是否有任何方法可以引导它换行?

[英]While reading a file (ifstream), is there any way to direct it to make a new line?

在读取文件(ifstream)时,是否有任何方法可以引导它换行?

例如,我希望发生这种情况:

myfile >> array [1] >> array [2] >> endl;

显然,“ endl”是不允许的。 还有另一种方法吗?

编辑---感谢大家的快速反应!

从文本文件,我试图将文件中的两个字符串存储到数组中,然后对下一行进行相同的操作(或者直到我需要使用for循环为止)

使用字符串对我来说很重要,因为它将使我将来的程序更加灵活。

几种选择:

您可以使用ignore。

myfile >> array[1] >> array[2];
myfile.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

或者您可以将每一行读为字符串流

std::string line;
std::getline(myfile,line);
std::stringstream  stream(line);

stream >> array[1] >> array[2];

请注意:数组索引从0开始。

使用std::getline将一行读入内存流,然后从中获取两个字符串。

while (cin)
{
  string line;
  getline(cin, line);

  stringstream stream;
  stream << line;

  stream >> array[1]>>array[2];
}

阅读您的两个项目,然后调用myfile.ignore(8192, '\\n')

我不知道这个问题是什么意思。 这是一种将文件的所有行读入字符串向量的简单方法。 如果先执行此操作,可能会更容易。

std::vector<std::string> lines;

std::string line;
while (std::getline(myFile, line))
    lines.push_back(line);

现在您可以说lines[4]来获得第五行,或者说lines.size()来找出有多少行。

这应该工作:

stringstream stream;
string sLine;
int iLine;

while (cin)
{
  getline(cin, sLine);

  stream << sLine;
  stream >> data[iLine][0] >> data[iLine][1];
}

较早答案的定制版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM