• 5052阅读
  • 0回复

[提问]QString写入文本文件,char来读取发生错误 [复制链接]

上一主题 下一主题
离线彩阳
 

只看楼主 倒序阅读 楼主  发表于: 2012-12-01
关键词: QT4文件QFile
嗯,这个问题的代码在这里:QString写入文本文件,char来读取发生错误 [Qt]测试QString写入char读取是否存在中文问题.7z (1 K) 下载次数:0
我把代码贴出来吧:
  1. #include <QString>
  2. #include <QFile>
  3. #include <iostream>
  4. using namespace std;
  5. int main( void )
  6. {
  7.     cout << "要测试QString写入,QString读取是否出现中文乱码的现象。\n";
  8.     QFile file( QObject::tr( "test.txt" ) );
  9.     if ( !file.open( QIODevice::WriteOnly ) )
  10.     {
  11.         cout << "以写入方式打开错误!\n";
  12.         return 1;
  13.     }
  14.     QString testStr( QObject::tr( "你好,我喜欢你!" ) );
  15.     file.write( testStr.toAscii( ) );
  16.     cout << "文件写入完毕!\n";
  17.     file.close( );
  18.     cout << "开始文件的读取";
  19.     QFile file2( QObject::tr( "test.txt" ) );
  20.     if ( !file2.open( QIODevice::ReadOnly ) )
  21.     {
  22.         cout << "以读取方式打开错误!\n";
  23.         return 1;
  24.     }
  25.     char retStr[5] = { 0 };
  26.     file2.read( retStr, 4 );
  27.     file2.close( );
  28.     cout << "现在输出字符串:" << retStr << '\n';
  29.     return 0;
  30. }
Ubuntu下测试,发现出现这样的结果:


本来读取4字节,QFile莫名地少读了1个字节,这是怎么回事呢?
上海Qt开发联盟,热忱地欢迎你的加入!
快速回复
限100 字节
 
上一个 下一个