• 6086阅读
  • 8回复

在使用QTcpSocket读取数据时,如何去掉最后一个字符? [复制链接]

上一主题 下一主题
离线tsuibin
 

只看楼主 倒序阅读 楼主  发表于: 2009-11-02
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
在使用QTcpSocket读取数据时,如何去掉最后一个字符?

我在使用QTcpSocket接收socket发送过来的数据

使用
QTextStream out(tcpSocket);
out << string << endl;
这种方式发送的数据


例如 发送hello

接收之后的长度时 6
最后一个貌似是一个换行符,但是使用\r 或者\n 判断 均不相等,
请问我如何过滤掉最后一个字符?
离线dbzhang800

只看该作者 1楼 发表于: 2009-11-02
去看 QString 的manual吧,不止一种方法可以做到
离线tsuibin

只看该作者 2楼 发表于: 2009-11-02
在读socket的时候 有没有办法就过滤掉最后的那个特殊字符呢?
离线tsuibin

只看该作者 3楼 发表于: 2009-11-02
>_<
string.remove(size,1) ..........
[ 此帖被tsuibin在2009-11-02 16:54重新编辑 ]
离线dbzhang800

只看该作者 4楼 发表于: 2009-11-02
如果你只是去掉 一个字符串中的最后一个字符的话,最直接的

string.chop(1);

不过既然只是不知道最后一个字符是什么,为什不qDebug其 ascii码 出来看看
离线tsuibin

只看该作者 5楼 发表于: 2009-11-02
呵呵 谢谢
忘记了可以看asc码!
离线tsuibin

只看该作者 6楼 发表于: 2009-11-02
qDebug()无法输出……
qDebug()<<string.at(string.size()-1).toAscii();
离线dbzhang800

只看该作者 7楼 发表于: 2009-11-02
qDebug()<<static_cast<int>(string.at(string.size()-1).toAscii());
离线wato
只看该作者 8楼 发表于: 2009-11-02
会不会是字符串最后的 ‘/0’
快速回复
限100 字节
 
上一个 下一个