C++;生成的csv与开放式办公室导出 我完成了C++中的一个小应用程序,它将一个~15K记录表解析成.cv文件。

C++;生成的csv与开放式办公室导出 我完成了C++中的一个小应用程序,它将一个~15K记录表解析成.cv文件。,c++,csv,magmi,C++,Csv,Magmi,我遇到的问题是,本应使用此文件作为源(Magmi)的第三方应用程序无法识别我生成的csv中的字段。但是,如果我只是用OpenOfficeCalc打开同一个文件并将其再次导出为.csv,那么它就可以很好地工作,没有任何其他更改 我最初认为这可能是windows CR/LF的问题,所以我在linux上重新编译了应用程序,并用notepad++检查以确保其中没有多余的CR,也没有多余的CR。所有的行尾都是LF 有人能给我一个提示,我错过了什么 谢谢原来是权限问题导致了问题。由于我的dev.enviro

我遇到的问题是,本应使用此文件作为源(Magmi)的第三方应用程序无法识别我生成的csv中的字段。但是,如果我只是用OpenOfficeCalc打开同一个文件并将其再次导出为.csv,那么它就可以很好地工作,没有任何其他更改

我最初认为这可能是windows CR/LF的问题,所以我在linux上重新编译了应用程序,并用notepad++检查以确保其中没有多余的CR,也没有多余的CR。所有的行尾都是LF

有人能给我一个提示,我错过了什么


谢谢

原来是权限问题导致了问题。由于我的dev.environment是在一个VM上设置的,所以我将输出文件复制到导入文件夹中(但从未真正尝试查看权限是否是原因)。文件的所有权仍由文件的原始用户保留,导致文件从Open Office导出时正常工作,但在我尝试使用原始用户时失败


谢谢大家。

你有没有使用diff工具来比较正在工作的csv和已损坏的csv?我只是通过它们的属性比较了两者的大小(生成的csv小于约200字节),否则没有。正如我提到的,我对此有点困惑,因为这是一个非常奇怪的问题。csv是一种文本格式,所以很容易看出区别。进行比较。一些可能不同的东西是字符编码、BOM和正确的EOF。如果Magmi热衷于这些事情,而OpenOfficeCalc不是,那么它可能会引起您的问题。如果我猜的话,大小的差异指向字符编码。我想您在编写文件时没有指定ios::binary?不,我想那是我的derp时刻之一。完全忘了在ios::in旁边添加它。谢谢你指出这一点。它没有解决问题,但从一开始就应该存在。