ofstream f(dir_txt.toStdString());
if(f.is_open())
{
for(int i=0;i<640;i++)
{
for(int j=0;j<480;j++)
{
f<<Erg_2DArray[i][j];
f<<";";
}
f<<"\n";
}
f.close();
代码如上,在学校电脑上运行的很好,在自己的电脑上运行的不行。。
其中的dir_txt一开始是QString,为qt中的类,通过toStdString()转换成了标准的String。。。
dir_txt用的相对路径
难道是因为学校的电脑文件夹都是英文,到了我自己的电脑上,文件夹包含了中文,就用不了了?
求指点。。。
QString
内部是Unicode
的,用toStdString
会调用QTextCodec::codecForCStrings
来处理(QT4
),所以需要设置C风格字符串的默认locale
,用setCodecForCStrings
Qt5的话,删掉了
codecForCStrings
,默认以Latin-1
处理,所有的中文字符都会丢失。所以最简单的解决办法,不要用
ofstream
,用QFile