C++中如何将两个连续的string 类型存入到文件中并读取出来?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中如何将两个连续的string 类型存入到文件中并读取出来?相关的知识,希望对你有一定的参考价值。

我定义了一个对象,对象里有两个数据成员都是string类型,现在如何将这两个string类型存入到一个文件中(最好用二进制文件存储),然后把它们从文件中读取出来,再赋值给这个对象的两个string类型数据成员。

参考技术A 对于不定长数据,一般使用的简便方法是,先保存数据长度,然后保存这个长度的内容。
象你的数据有两个string。
class
A

std::string
s1,
s2;

FILE
*fp
=
fopen("a.man",
"w");
...
int
n
=
s1.size();
fwrite(&n,
sizeof(n),1,
fp);
fwrite(s1.c_str(),
1,
n,
fp);
...
int
n
=
s2.size();
fwrite(&n,
sizeof(n),1,
fp);
fwrite(s2.c_str(),
1,
n,
fp);
//
read
fread(&n,
sizeof(n),
1,
fp);
char
*p
=
new
char[n];
fread(p,
1,
n,
fp);
s1
=
p;
delete[]
p;
fread(&n,
sizeof(n),
1,
fp);
char
*p
=
new
char[n];
fread(p,
1,
n,
fp);
s2
=
p;
delete[]
p;

String str=“2011-11-11 22:22:22” 如何把str转换成datetime类型存入mysql中

要在JAVA中实现

mysql的datetime类型,其实就是string型。

PHP:
使用int strtotime ( string $time [, int $now ] )函数转换为整数time类型。
插入时mysql时使用string date ( string $format [, int $timestamp ] )函数。
date("Y-m-d H:i:s", strtotime(str));

C#:
如果需要计算,先转DateTime:
DateTime dt = Convert.ToDateTime(str);
再DateTime转string:
dt.tostring()
参考技术A 直接向里存就可以,这样的格式是正常的'2011-11-11 22:22:22'

PHP也可以这样
$str = strval('2011-11-11 22:22:22');
$str = strtotime($str);
$time = date('Y-m-d H:i:s',$str);
echo $time;
参考技术B 多数方法是转为整型存入数据库
显示时再转回日期时间
strtotime($str)将字符串转为整型
date('Y-m-d H:i:s',$str)将整型转回时间

以上仅仅是php的方法

以上是关于C++中如何将两个连续的string 类型存入到文件中并读取出来?的主要内容,如果未能解决你的问题,请参考以下文章

如何将C++中string类型的字符串赋给unsigned char数组

c++基础——容器

如何将2W多字节的数据存入mysql中

如何将 JAVa中的 String类变量嵌入SQL查询语句中...?

String str=“2011-11-11 22:22:22” 如何把str转换成datetime类型存入mysql中

C++中如何将一个字符串(string类型的)映射(转换)到枚举值(enum)