qt 多个字符串 序列化到文件注意事项。
来源:互联网 发布:网络传输文件软件 编辑:程序博客网 时间:2024/05/20 22:27
当多个字符串 序列化到文件是,每个字符串尾要加endl。 用来区分该字符串尾部。
否则输入时会区分不了各个字符串。 见下例:
#include <QtGui>
#define CLIPFILE "clip.txt"
QString commonStr[4]; //commonStr[0] 本测试程序未使用
QString str[4]; //str[0] 本测试程序未使用
int main(int argc, char *argv[])
{
(void) argc;
(void) argv;
commonStr[1]="1";
commonStr[2]="2";
commonStr[3]="3";
//持久化到flash, 实际上是文件操作
QFile outFile(CLIPFILE);
outFile.open(QIODevice::WriteOnly|QIODevice::Text);
QTextStream ts(&outFile);
for(int i=1;i<4;i++)
{
ts << commonStr[i]<<endl;
// ts << commonStr[i]; //如果不加endl, 读入时会直接读到文件尾给第一个字符串
}
outFile.close();
int r=system("sync");
(void) r;
QFile file(CLIPFILE);
if(!file.exists()) return 0;
file.open(QIODevice::ReadOnly | QIODevice::Text);
QTextStream ts2(&file);
for(int i=1;i<4;i++)
ts2>>str[i];
file.close();
qDebug()<<str[1]<<endl;
qDebug()<<str[2]<<endl;
qDebug()<<str[3]<<endl;
return 0;
}
/*
//加endl 后正确的打印输出
./qttest
"1"
"2"
"3"
//查看clip.txt 二进制文件,字符串之间已用0x0a隔开
$ xxd clip.txt
0000000: 310a 320a 330a 1.2.3.
//不加endl 错误的打印输出
./qttest
"123"
""
""
//查看clip.txt 二进制文件, 多个字符串被连接在了一起。不是我们所需要的。
$> xxd clip.txt
0000000: 3132 33 123
*/
0 0
- qt 多个字符串 序列化到文件注意事项。
- qt 多个字符串 序列化到文件注意事项。
- 序列化对象到文件
- 序列化对象到Xml文件以及反序列话Xml文件到对象(序列化数据到8个Java原型类型)
- javaseday23补充(遍历指定目录保存到文件 序列流 多个序列流 合并 枚举和迭代 )
- 一个序列化器,满足多个xml文件生成
- 序列化注意事项
- 序列化注意事项
- 图像文件序列化到XML文件中
- java 序列化到.ser文件
- 序列化 保存到一个文件
- 若干个字符串排序,然后写到文件中
- Qt中加载多个txt文件
- QT 格式化时间到字符串
- QT 动态加载UI文件注意事项
- QT 动态加载UI文件注意事项
- Object序列化到文件,在从文件读
- Xml序列化的注意事项
- 调用相机拍照功能
- javascript学习思路
- android ANR产生情况、发生原因及解决办法
- 在dos窗口中的一行不断刷新显示时间的代码(清除dos窗口内容)
- 如何解决Java通过JDBC访问MySQL时SSL连接告警问题
- qt 多个字符串 序列化到文件注意事项。
- 输入一个日期,判断是当年的第几天
- 理解java的三大特性之多态
- 【项目2-学生成绩处理】 (1)
- 【设计模式】装饰模式
- 30分钟搞定jni
- 关于jquery中html()、text()、val()的区别
- JavaScript转换字符串:大写+下划线格式
- PHP 编程语言