用数组写QT文件

时间:2014-12-09 14:58:55

标签: c++ qt file csv qt5

我试图从csv文件读取到另一个文件。没有任何错误,我只是不明白它为什么不写入文件。任何帮助表示赞赏。我对QT很新。

QString arr[581][6];
while (!file.atEnd()) {
    QByteArray line = file.readLine();

    for (int i=0; i<581; i++){
        for(int j=0; j<6; j++){

            arr[i][j]=line;

        }
    }
}

QString Hfilename="c:\Data.txt";
QFile fileH( Hfilename );
if ( fileH.open(QIODevice::ReadWrite) )
{
    QTextStream stream( &fileH );

    for (int i=0; i<581; i++){
        for(int j=0; j<6; j++){

            stream<<arr[i][j]<<endl;

        }
    }

}

1 个答案:

答案 0 :(得分:1)

根据您提供的代码,请找到写步骤的工作示例(您指定读取步骤正在工作):

#include <QCoreApplication>
#include <QFile>
#include <QTextStream>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString arr[3];
    arr[0] = "xxxxxx";
    arr[1] = "yyyy";
    arr[2] = "zzzz";

    QString Hfilename="/home/jhondoe/toto.txt";
    QFile fileH( Hfilename );
    if ( fileH.open(QIODevice::ReadWrite) )
    {
        QTextStream stream( &fileH );
        for (int i=0; i<3; i++){
            stream << arr[i] << endl;
        }
    }
    return a.exec();
}

发生了什么变化:

  • 我(我的用户帐户)有足够的权限写入输出文件
  • 如果您在Windows上工作,正如@ igor-tandetnik所说,您必须使用双反斜杠作为分隔符。您还可以使用QDir :: separator()作为文件路径的本机分隔符。