Qt 将文本文件读入QStringList

Qt 将文本文件读入QStringList,qt,file,Qt,File,我有一个文本文件。我需要把它读给一个英语老师听。没有行分隔符。我的意思是文本文件中的每一行都在一个新行中。那么,我还能做什么呢?我假设列表中的每一行都应该是一个单独的字符串。在循环中使用,并在每个步骤上将返回值附加到QStringList。像这样: QStringList stringList; QFile textFile; //... (open the file for reading, etc.) QTextStream textStream(&textFile); while

我有一个文本文件。我需要把它读给一个英语老师听。没有行分隔符。我的意思是文本文件中的每一行都在一个新行中。那么,我还能做什么呢?

我假设列表中的每一行都应该是一个单独的字符串。在循环中使用,并在每个步骤上将返回值附加到QStringList。像这样:

QStringList stringList;
QFile textFile;
//... (open the file for reading, etc.)
QTextStream textStream(&textFile);
while (true)
{
    QString line = textStream.readLine();
    if (line.isNull())
        break;
    else
        stringList.append(line);
}

如果文件不太大,请将整个内容读入
QString
,然后读入
QStringList

我喜欢使用QRegExp版本来处理来自不同平台的换行:

QStringList sList = s.split(QRegExp("(\\r\\n)|(\\n\\r)|\\r|\\n"), QString::SkipEmptyParts);

下面的代码读取该文件

         QFile File("/file_path");
        if(!File.open(QIODevice::ReadOnly));
          {
              qDebug("Error");
         } 
        QTextStream in(&File);

    while(!in.atEnd())
    {
        qDebug()<<ReadAll;
        ReadAll=in.readAll();

    }
    File.close();

我喜欢我的代码完全缩进/缩进,并带有明显的变量名(它们可能需要更长的时间来键入,但更容易调试),因此我会执行以下操作(但将“myTextFile”和“myStringList”更改为更合理的名称,如“employeeListTextFile”)


在这种情况下,换行符“\n”是行分隔符。
         QFile File("/file_path");
        if(!File.open(QIODevice::ReadOnly));
          {
              qDebug("Error");
         } 
        QTextStream in(&File);

    while(!in.atEnd())
    {
        qDebug()<<ReadAll;
        ReadAll=in.readAll();

    }
    File.close();
    List= ReadAll.split(QRegExp("[\r\n]"),QString::SkipEmptyParts);
QFile myTextFile;
QStringList myStringList;

if (!myTextFile.open(QIODevice::ReadOnly))
{
    QMessageBox::information(0, "Error opening file", myTextFile.errorString());
}
else
{  
    while(!myTextFile.atEnd())
    {
        myStringList.append(myTextFile.readLine());
    }

    myTextFile.close();
}