发布网友 发布时间:2022-05-14 02:38
共1个回答
热心网友 时间:2023-08-15 04:55
1、如果将cout换为二进制文件QFile(或者查看调试时的变量b值),
QFile file("file.dat");那么会发现输出的结果是\0 \0 \0 \n \0 \0 \0 \0 6 \0 '1' \0 '2' \0 '3'.
2、如果将o << V;替换为o << V.toByteArray();,那么结果为\0 \0 \0 \0 3 '1' '2' '3'.
3、如果直接将V输出到控制台上,显示结果为QVariant(QString, "123");
所以,推测为QVariant具有独特的内存结构,如果直接以QByteArray将其内存数据输出到控制台,由于内存格式仍为QVariant的内存结构,所以控制台上不能显示出来。
不过,再具体的就说不上来了,查看QVariant类定义,也没有发现为什么会有\0 \0 \0 \n等这样的数据。希望高手解答啊。