• 7126阅读
  • 2回复

Qdatastream 读 [复制链接]

上一主题 下一主题
离线ujac
 
只看楼主 倒序阅读 楼主  发表于: 2010-06-08
想用Qt 写个tcp的客户端 照着 文档上的例子。
为什么一定要用那个fortuneserver作为服务器,才能在客户端接收到字符串,我自己用java写的服务器发送字符串,可在Qt的客户端就只能接受到“”呢?  于是我用  Qdatastream 读一个file.txt 测试一下,但是也是结果读字符串的结果也都是“”。可是照着文档上的例子写的:


 QFile file("file.txt");   //在file.txt中无论写什么 输出的都是“”;
 file.open(QIODevice::ReadOnly);
 QDataStream in(&file);    // read the data serialized from the file
 QString str;
 qint32 a;
 in >> str >> a;           // extract "the answer is" and 42


qDebug()<<str; //       输出到控制台 是不是这个的原因


请大家帮帮忙 总感觉这个Qt 很怪,不然java方便啊


谢谢
离线xtfllbl

只看该作者 1楼 发表于: 2010-06-08
Example (read binary data from a stream):

QFile file("file.dat");
file.open(QIODevice::ReadOnly);
QDataStream in(&file);    // read the data serialized from the file
QString str;
qint32 a;
in >> str >> a;

大哥你按照的这个例子读取的是二进制文件数据,你是文本文件,怎么能这样读取呢。。。

如果要读取文本,请使用QTextStream
上海欢迎您
离线dbzhang800

只看该作者 2楼 发表于: 2010-06-08
1. 不要这个样子发帖子!!

2. 认真看manual:上面同时给出了两段代码,一段是写,一段是读。你的文件必须是这么用QDataStream生成的

3. 认真看 manual:如果你的文件不是用QDataStream生成的,确保你已经熟悉了QDataStream 如何工作的:
http://doc.qt.nokia.com/4.6/datastreamformat.html
快速回复
限100 字节
 
上一个 下一个