• 7860阅读
  • 10回复

[提问]Qt编辑写文件的问题 为什么不能将字符写入到文件中呢? [复制链接]

上一主题 下一主题
离线兴海北路
 

只看楼主 倒序阅读 楼主  发表于: 2014-11-03
我想将"add layer style dialog opened!!!"这段文字写入到日志文件,日志文件也打开了,可是为什么写入的都是我不认识的字符啊?全是这样子的:




程序的代码是这样子的:
QgsLogger::logMessageToFile(tr("add layer style dialog opened!!!")); //调用日志文件类的静态函数

//函数的定义是这样子的
void QgsLogger::logMessageToFile( QString theMessage )
{
  if ( ! logFile().isEmpty() ) //读取日志文件的路径,此处是正确的,可以找到日志路径
  {
    //Maybe more efficient to keep the file open for the life of qgis...
    QFile file( logFile() ); //打开了日志文件
    file.open( QIODevice::Append | QIODevice::Text);
    file.write( theMessage.toStdString().c_str() );
    file.write( "\n" );
    file.close();
  }
  return;
}
离线dbzhang800

只看该作者 1楼 发表于: 2014-11-03
1.  theMessage 里面到底是什么东西呢?
  theMessage.toStdString().c_str()  这个东西真让人头疼。为什么不直接用theMessage.toUtf8() 或 theMessage.toLatin1() 或 ...

2. LF (line feed) ,就是你写入的 "\n" 。
离线兴海北路

只看该作者 2楼 发表于: 2014-11-03
回 dbzhang800 的帖子
dbzhang800:1.  theMessage 里面到底是什么东西呢?
  theMessage.toStdString().c_str()  这个东西真让人头疼。为什么不直接用theMessage.toUtf8() 或 theMessage.toLatin1() 或 ...
2. LF (line feed) ,就是你写入的 "\n" 。 (2014-11-03 11:19) 

theMessage就是QgsLogger::logMessageToFile(tr("add layer style dialog opened!!!"));里的“add layer style dialog opened!!!”这个字符串啊
离线dbzhang800

只看该作者 3楼 发表于: 2014-11-03
有没有加断点调试,你这儿的 theMessage内容到底是不是这个
离线兴海北路

只看该作者 4楼 发表于: 2014-11-03
回 dbzhang800 的帖子
dbzhang800:有没有加断点调试,你这儿的 theMessage内容到底是不是这个 (2014-11-03 11:25) 

没错 是这个
离线dbzhang800

只看该作者 5楼 发表于: 2014-11-03
也就是是说,下面的代码对你不工作,对吗??

#include <QFile>
int main()
{
    QFile file("a.log");
    file.open( QIODevice::Append | QIODevice::Text);
    file.write(QString("add layer style dialog opened!!!").toStdString().c_str() );
    file.write( "\n" );
    file.close();
    return;
}
离线兴海北路

只看该作者 6楼 发表于: 2014-11-03
回 dbzhang800 的帖子
dbzhang800:也就是是说,下面的代码对你不工作,对吗??
#include <QFile>
int main()
{
....... (2014-11-03 11:35) 

不是 这个demo程序是可以工作的 将字符串“add layer style dialog opened!!!”正确些人了文件
离线dbzhang800

只看该作者 7楼 发表于: 2014-11-03
也就是说,你顶楼给出的信息,对解决你的问题没有什么帮助,对吧
离线兴海北路

只看该作者 8楼 发表于: 2014-11-03
回 dbzhang800 的帖子
dbzhang800:也就是说,你顶楼给出的信息,对解决你的问题没有什么帮助,对吧 (2014-11-03 11:50) 

那也没有其他相关的东西了啊
离线roywillow

只看该作者 9楼 发表于: 2014-11-03
干嘛不用QTextStream直接写入QString……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线sharkoasis

只看该作者 10楼 发表于: 2014-12-16
QFile不能写入QString吗?干吗非要转一下!
快速回复
限100 字节
 
上一个 下一个