更新时间2019-02-06 23:07:26
#include<stdio.h>
int main()
{
struct man{ char name[20];
int phone;
float scores; };
FILE *fp;int i=0;char ch[200];
if((fp=fopen("contants.txt","r"))==NULL)
printf("open failure");
else while(fgets(ch,200,fp)!=NULL)
i++;
struct man a[i];int j;
while((fscanf(fp,"%s%d%f",a[j].name,&a[j].phone,&a[j].scores))!=EOF)
j++;
for(j=0;j<i;j++)
printf("%s %d %f ",a[j].name,a[j].phone,a[j].scores);
}
contants.txt
张三 3144124 32.143
李四 21414141 424.312
王麻子 2343523523 3141.124141
因为结构体它里面有多种数据, 所以如果一个一个保存肯定是麻烦的. 所以, 如果保存的文件不是给用户看的, 而是只为程序所用, 那么直接用二进制方式打开文件, 然后用fwrite把结构的二进制数据写入内存
# include <stdio.h> struct dat{ int i;char ch;double d;}; int main(){ FILE *p = fopen("data.txt", "w"); if (!p) return 0; fwrite(&p, sizeof(p), 1, p); fclose(p);}用c语言实现。把结构体写入文件,然后再读取出来并显示;
/* structinfile .c
* Auther: tweety
* date: 2009-12-04
*/
#include <stdio.h>
typedef struct Filenode
{
int isempty;
char * data;
}filenode;
int node_init(filenode *node)
{
node->isempty=1;
node->data = "FOOLisENOUGH!";
return 0;
}
int node_write_infile(filenode * node)
{
//把结构体写入文件
FILE *fp=fopen("file.txt","w");
if(fwrite(node,sizeof(Filenode),1,fp))
{
fclose(fp);
return 1;
}
else return 0;
}
int node_read_outfile(filenode *node)
{
//读取结构体
FILE *fp =fopen("file.txt","r");
if(fread(node,sizeof(Filenode),1,fp))
{
fclose(fp);
return 1;
}
else return 0;
}
int main()
{
filenode *innode = malloc(sizeof(filenode));
filenode *outnode =malloc(sizeof(filenode));
node_init(innode);
if(node_write_infile(innode)) printf("file write OK ");
if(node_read_outfile(outnode))
{
printf("%d ",outnode->isempty);
printf("%s ",outnode->data);
}
system("pause");
return 0;
}
上一篇:关于显卡,内存条适配问题
下一篇:电脑配置问题