如何使用QTextStream :: readLine函数?

Mar*_*tin 3 c++ qt

我试图使用下面给出的Qt代码从文本文件中读取值.

int ReadFromFile(QString fileName)
{
   QFile file(fileName);
   if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
      return 1;

   QTextStream in(&file);
   while (!in.atEnd())
   {
      QString line = in.readLine(1); //read one line at a time
      QStringList lstLine = line.split(",");
   }
   file.close();
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

文本文件的内容如下:

1,0.173648178  
2,0.342020143  
3,0.5  
4,0.64278761  
5,0.766044443  
6,0.866025404  
Run Code Online (Sandbox Code Playgroud)

但是readLine总是一次返回一个字符,但我的意图是一次读取一行并分割每一行以获得单独的逗号分隔值.

我错过了一些基本的东西吗?

小智 5

是.您为maxlen参数传递1 ,这意味着将行长度限制为仅1个字符.尝试不提供任何东西maxlen.

  • 问题是这些行是由"\ r"终止的,这些行没有正确的尾随行尾字符"\ r \n" (2认同)