
c语言中string声明的变量如何存进文件去?
展开全部
在C语言中并没有string类型的变量。string类型变量是C++的。
1 在C语言中,字符串是用字符数组表示的,要将字符串存到文件中,可以使用
fprintf函数。
代码如下:
fprintf(fp, "%s", str);
其中,fp为打开的文件指针,str为字符串变量。
2 在C++中,要将string类型变量存到文件中,根据文件操作的方式,有如下两种:
a)ofstream流对象打开的文件。
使用<<重载即可。如
out<<str;
其中,str为string对象,而out为ofstream对象。
b)fopen打开的文件。
要将string对象存到fopen打开的文件中,要先把string转为C格式的字符串。即字符数组形式,可以使用string的c_str()成员函数。然后再如1中所述,使用fprintf输入到文件。
代码:
fprintf(fp, "%s",str.c_str());
1 在C语言中,字符串是用字符数组表示的,要将字符串存到文件中,可以使用
fprintf函数。
代码如下:
fprintf(fp, "%s", str);
其中,fp为打开的文件指针,str为字符串变量。
2 在C++中,要将string类型变量存到文件中,根据文件操作的方式,有如下两种:
a)ofstream流对象打开的文件。
使用<<重载即可。如
out<<str;
其中,str为string对象,而out为ofstream对象。
b)fopen打开的文件。
要将string对象存到fopen打开的文件中,要先把string转为C格式的字符串。即字符数组形式,可以使用string的c_str()成员函数。然后再如1中所述,使用fprintf输入到文件。
代码:
fprintf(fp, "%s",str.c_str());
展开全部
如果要读写文件, 用f开头的文件, 如:fopen, fclose, fprintf, fscanf, fgetc, fputc, fgets, fputs等等等等.
但是你说用string声明的变量.....这句有问题, 第一:string是C++里的类, 第二, 那不是声明 , 那叫定义.
因为你表达不清晰, 所以无法给你写出个代码的模子.
但是你说用string声明的变量.....这句有问题, 第一:string是C++里的类, 第二, 那不是声明 , 那叫定义.
因为你表达不清晰, 所以无法给你写出个代码的模子.
追问
好的👌好的。那我是定义的字符串变量,并且想存储到文件中去,并使用二进制存档,在write((char*)&str,sizeof(str))存档时发现文件里一堆乱码,该如何是好呢?爱编程的学生求帮忙
追答
一个语句, 俩表达式, 你全写错.
应该这样写
fwrite(str, 1, strlen(str), pf);
str本身就是指针, 不用再取地址了, C/C++中除了多维数组, 用多级指针的地方几乎没有.
第二个参数是一个数据块的长度, 你要读写的是字符, 就是一字节.
第三个参数是有几个数据块, 就是你要写入的字符串的长度.
最后一个参数 是文件指针.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询