c语言 怎么把一个结构体数组写出到文本 C语言 怎么把文件中的信息储存到结构体数组中

\u5982\u4f55\u7528C\u8bed\u8a00\u8bfb\u53d6txt\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5230\u7ed3\u6784\u4f53\u6570\u7ec4\u4e2d

1\u3001\u5728vscode\u91cc\u9762\u6dfb\u52a0\u4e86Python\u6587\u4ef6\u548c\u7528\u4e8e\u8bfb\u53d6\u7684\u6587\u672c\u6587\u4ef6\u3002

2\u3001\u7136\u540e\u5728txt\u6587\u4ef6\u5199\u4e0a\u4e00\u4e9b\u5185\u5bb9\u7528\u4e8e\u5f85\u4f1a\u7684\u5185\u5bb9\u8bfb\u53d6\uff0c\u968f\u4fbf\u5199\u4e0a\u5373\u53ef\u3002

3\u3001\u6b64\u5916\uff0c\u6211\u4eec\u8fd8\u5fc5\u987b\u8981\u5bfc\u5165os\u6587\u4ef6\uff0c\u8fd9\u6837\u624d\u53ef\u8c03\u7528os\u4e2d\u7684\u4e00\u4e9b\u6587\u4ef6\u64cd\u4f5c\u65b9\u6cd5\u3002

4\u3001\u7136\u540e\u6253\u5f00\u8981\u8fdb\u884c\u8bfb\u53d6\u5185\u5bb9\u7684\u6587\u4ef6\uff0c\u5e76\u4e14\u628a\u8bfb\u53d6\u5230\u7684\u5185\u5bb9\u6570\u636e\u590d\u5236\u7ed9\u4e86\u53d8\u91cfa\u3002

5\u3001\u7136\u540e\u628a\u53d8\u91cfa\u6253\u5370\u5373\u53ef\u628a\u5185\u5bb9\u7ed9\u5c55\u73b0\u51fa\u6765\uff0c\u65b9\u4fbf\u67e5\u9605\u4e86\u3002

6\u3001\u63a5\u7740\u8fd0\u884cjy.py\u6587\u4ef6\uff0c\u8fd9\u6837\u5c31\u4f1a\u5f00\u59cb\u8bfb\u53d6\uff0c\u6253\u5370\u5185\u5bb9\u3002

7\u3001\u53ef\u4ee5\u770b\u5230\u6587\u4ef6\u7684\u5185\u5bb9\u771f\u7684\u88ab\u8bfb\u53d6\u5230\u4e86\u3002

\u603b\u4f53\u5199\u5f97\u4e0d\u9519\uff0c\u95ee\u9898\u51fa\u5728\u4f60\u7684
fscanf\u548cfprintf\u51fd\u6570\u53c2\u6570\u4f20\u9012\u9519\u8bef\u4e86
#include "stdio.h"#include "stdlib.h"struct s{ int id; char name[10]; int co1; int co2; int co3; int co4;};int main(){ int i=0,count; struct s st[10]; char fname[10],ch; FILE *infile,*outfile; printf("please input data file name:\n"); scanf("%s",fname); infile=fopen(fname,"r"); outfile=fopen("output.txt","w"); if(infile==NULL) { printf("\nFailed to open the file"); exit(1); } fscanf(infile,"%d",&count); while(i<count) { fscanf(infile,"%d %s %d %d %d %d\n",&(st[i].id),st[i].name,&(st[i].co1),&(st[i].co2),&(st[i].co3),&(st[i].co4)); fprintf(outfile,"%d %s %d %d %d %d\n",st[i].id,st[i].name,st[i].co1,st[i].co2,st[i].co3,st[i].co4); i++; } fclose(infile); fclose(outfile);}\u9996\u5148\uff0c\u4f60\u7684name\u662f\u7ed3\u6784\u4f53\u4e2d\u7684\u5b57\u7b26\u6570\u7ec4\uff0cfscanf\u8981\u4f20\u5165\u7684\u5e94\u8be5\u662f\u5b58\u50a8\u5b57\u7b26\u7684\u5730\u5740\uff0c\u6240\u4ee5\u76f4\u63a5\u662f\u6570\u7ec4\u540dname\u5c31\u884c

\u7b2c\u4e8c\uff0cfprintf\u4f60\u8981\u5199\u5165\u6587\u4ef6\u7684\u6570\u636e\uff0c\u5e94\u8be5\u662f\u771f\u6b63\u7684\u6570\u636e\u672c\u8eab\uff0c\u4e0d\u662f\u6570\u636e\u7684\u5730\u5740\uff0c\u6240\u4ee5\u5e94\u8be5\u5c06\u53d8\u91cf\u524d\u7684\u53d6\u5730\u5740\u7b26\u5168\u53bb\u6389\u5c31\u597d\uff0c

\u7b2c\u4e09\uff0c\u6ce8\u610f\u52a0\u597d\u6362\u884c\u7b26\n

\u7ed3\u679c\uff1a

text.txt\u4e2d\u5185\u5bb9\u5c31\u662foutput.txt\u4e2d\u7684\u5185\u5bb9

简单办法用2进制方法打开输出文件,例如:
struct SA sa[10];
if ( (fout = fopen(nameout,"wb") ) == NULL ) {
printf("\007Cann't open output file: %s ", nameout);exit(1);
};
循环,一个结构一个结构地 输出:
for (i=0;i<10;i++) fwrite(&sa[i],sizeof(struct SA),1,fout);

扩展阅读:c#面试题 ... 数组的3种赋值方法 ... c语言struct结构体数组 ... 打印结构体数组 ... 学c#有前途吗 ... c语言结构体数组拷贝 ... 声明一个结构体数组 ... 结构体数组怎么输出 ... c语言结构体数组简单例子 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网