Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从QT写入csv文件。它在Mac上运行,但在Windows上不起作用_C++_Qt_Csv - Fatal编程技术网

C++ 从QT写入csv文件。它在Mac上运行,但在Windows上不起作用

C++ 从QT写入csv文件。它在Mac上运行,但在Windows上不起作用,c++,qt,csv,C++,Qt,Csv,我正在编写一个程序,需要从QT写入csv。代码如下: void MainWindow::writeUserData(){ CSVWriter writerHeader; writerHeader.setSeparator(";"); writerHeader.openFile(m_path+"users/header.csv"); QString fileName = m_path + "users/"+ m_userData["userId"] + "_" + m_userData["nam

我正在编写一个程序,需要从QT写入csv。代码如下:

void MainWindow::writeUserData(){
CSVWriter writerHeader;
writerHeader.setSeparator(";");
writerHeader.openFile(m_path+"users/header.csv");

QString fileName = m_path + "users/"+ m_userData["userId"] + "_" + m_userData["name"] + "_" + QDateTime::currentDateTime().toString()+".csv";

if(!Experiment::MAC_COMP){
    fileName = fileName.replace(" ","_");
    fileName = fileName.replace(":","_");
    fileName[1] =':';
}

CSVWriter writerUserData;
writerUserData.setSeparator(";");
writerUserData.openFile(fileName);

QStringList header;
QStringList d;
QMapIterator<QString,QString> i(m_userData);
while(i.hasNext()){
    i.next();
    header<< i.key();
    d<<i.value();
}

writerHeader.setColumnNames(header, true);
writerUserData.setColumnNames(header);
writerUserData.write(d,true);

writerHeader.closeFile();
writerUserData.closeFile();
}
void主窗口::writeUserData(){
CSV编写器编写器;
writerHeader.setSeparator(“;”);
openFile(m_path+“users/header.csv”);
QString fileName=m_path+“users/”+m_userData[“userId”]+“”+m_userData[“name”]+“”+QDateTime::currentDateTime().toString()+“.csv”;
如果(!实验::MAC_COMP){
fileName=fileName.replace(“,”);
fileName=fileName.replace(“:”,“”);
文件名[1]=':';
}
CSVWriter writerUserData;
writerUserData.setSeparator(“;”);
writerUserData.openFile(文件名);
QStringList头;
QStringList d;
QMapIterator i(m_userData);
while(i.hasNext()){
i、 next();

header我认为问题可能出在csv文件的编码上。尤其是在行尾字符上。我过去使用Qt4.x时也遇到过同样的问题。问题出在
QTextStream
readline()中
它读取了整个文件,应用程序崩溃。

没有调试器?请更加努力。提供的代码中没有特别明显或令人讨厌的内容。启动调试器,确保汇编的文件路径在Windows上有意义。感谢您的鼓励。我尝试过调试。因为我以后需要将数据记录在此文件中,调试只告诉我这一点“无法打开文件”和“无法写入文件,因为m_Columns.empty()| | m_file==NULL返回false"这是有意义的,因为文件没有创建。如果你有经验,请与我分享。谢谢你只是想补充一下,该程序在Windows上工作,路径应该是正确的,因为我也加载了其他xml文件。只有csv编写器没有工作,但不知道为什么…因为我们看不到
m_path
包含什么或
fileName就包含了,我们所能做的就是猜测。我猜文件名不好。