C++ 从QT写入csv文件。它在Mac上运行,但在Windows上不起作用
我正在编写一个程序,需要从QT写入csv。代码如下: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
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就包含了,我们所能做的就是猜测。我猜文件名不好。