C语言程序中定义一个结构体,在运行时给其成员赋值,关闭程序;再次运行时,怎样读取该结构体上次的数据?

如果将结构体数据存储带一个文件,跟用什么格式的文件有关系吗,该怎么样读写;特别是程序初始化的时候怎么从文件中读数据赋值给该结构体?求代码 谢谢

将数据存储在文件里,txt格式的就行。
假设结构体为
struct A{
int a;
char b[10];
}aa;
假设文件为C:\a.txt,内容为
1 world!
则可以这样赋值:

FILE *fp;
fp=fopen("C:\\a.txt","r");
fscanf(fp,"%d%s",&aa.a,aa.b);
fclose(fp);

以下为检验:
printf("%d %s\n",aa.a,aa.b);追问

“假设文件为C:\a.txt,内容为 1 world!............fscanf(fp,"%d%s",&aa.a,aa.b;”
文件内容就是一行“1 world!”,fscanf时程序能自动识别1是aa.a,word!是aa.b?
能简述下原因吗 我是菜鸟 谢谢

追答

这个你可以看看fscanf函数的定义 http://baike.baidu.com/view/656682.htm.
如果你用过scanf,就很容易理解。
fscanf(fp,"%d%s",&aa.a,aa.b); 中%d 和 %s为模式匹配符。
%d与文件输入流中的int数相匹配,也就是文件中的1,并将其赋给aa.a。
%s与文件输入流中的字符串相匹配,也就是文件中的"world!",并将其赋给aa.b。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-10
不可能读去上次的数据
你只能把他按照特殊的格式写文件里,然后从文件里去读
相似回答