#include<stdio.h>
#include<stdlib.h>
#define SIZE 4
#define FILENAME "person"
struct person
{
int id;
char name[10];
};
int main()
{
void copyContent(char inFileName[], char outFileName[]);
void savePerson(struct person psons[], int size, char fileName[]);
void readPerson(struct person psons[], int size, char fileName[]);
char inFileName[] = "abc.txt";
char outFileName[] = "abc2.txt";
copyContent(inFileName, outFileName);
int i, size = SIZE;
char fileName[] = FILENAME;
struct person psons[4];
for(i = 0 ; i < size ; i ++ )
{
scanf("%d%s", &psons[i].id, psons[i].name) ;
}
savePerson(psons, size, fileName);
struct person results[4];
readPerson(results, size, fileName);
for(i = 0 ; i < size ; i ++)
{
printf("%d %s\n", results[i].id, results[i].name);
}
}
//copy file content
void copyContent(char inFileName[], char outFileName[])
{
FILE *inFile, *outFile;
char ch;
if((inFile = fopen(inFileName, "r")) == NULL)
{
printf("Cannot open inFile\n");
exit(0);
}
if((outFile = fopen(outFileName, "w")) == NULL)
{
printf("Cannot open outFile\n");
exit(0);
}
while( ! feof(inFile))
{
ch = fgetc(inFile);
fputc(ch, outFile);
putchar(ch);
}
fclose(inFile);
fclose(outFile);
}
//save struct content to file
void savePerson(struct person psons[], int size, char fileName[])
{
FILE* fp;
int i;
if((fp = fopen(fileName, "wb")) == NULL)
{
printf("Cannot open file\n");
exit(0);
}
for(i = 0 ; i < size ; i ++ )
{
if(fwrite(&psons[i], sizeof(struct person), 1, fp) != 1)
printf("file write error.\n");
}
fclose(fp);
}
//read struct content from file
void readPerson(struct person psons[], int size, char fileName[])
{
FILE* fp;
int i;
if((fp = fopen(fileName, "rb")) == NULL)
{
printf("Cannot open file\n");
exit(0);
}
for(i = 0 ; i < size ; i ++ )
{
if(fread(&psons[i], sizeof(struct person), 1, fp) != 1)
printf("Cannot open file\n");
}
fclose(fp);
}
分享到:
相关推荐
C编程拾粹 C编程中需要注意的小技巧和注意事项,比如: - **宏定义的合理使用**:避免不必要的宏定义,注意宏展开时可能出现的问题。 - **函数指针**:理解和使用函数指针,它可以作为参数传递给其他函数。 - **...
**alsa_test拾音代码**是基于ALSA(Advanced Linux Sound Architecture) API开发的一个音频输入测试程序,主要用于在Android系统环境中验证麦克风等音频输入设备的功能。ALSA是Linux内核的一部分,提供了一套完整的...
- **习题1:重拾编译器** - **关键内容**: - 理解编译器的作用及其基本使用方法。 - 如何编译并运行C语言程序。 - **实践要点**: - 编写并运行简单的C程序。 - 观察程序的输出结果。 - 故意引入错误并分析...
1、 首先用Section打开工程文件,把所有文件设为编辑状态,然后对地形等高线文件进行高程赋值——新建线属性高程字段(原MapGis需要这样做,用Section剖面图菜单下的自动赋高程不需新建此字段(拖动操作))。...
请注意,检查每一条路径是一件消耗极大的操作,特别是修订版本日志,服务器会检查在每一个修订版本的每一条路径是否可读,对于影响很多文件的修订将会花费很多时间。 认证和授权是不同的处理过程,如果用户希望...
此外,整流器的快速恢复时间意味着在AC电转换为DC电时可以快速地从正向状态切换到反向状态,这在高频操作时尤其重要,可以减少功率损耗并提高整体电路效率。 在选择适合的整流二极管时,必须考虑其额定的反向电压、...
220、文件和目录(I/O)操作 54 230、J2EE的优越性 54 231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的...
在“CPP_Algorithms”项目中,作者通过编写各种算法来重拾C++编程技能。这个项目的核心目标是加深对C++语言的理解,并强化算法实现能力。C++是一种强大的、通用的编程语言,以其高效性、面向对象的特性以及对底层...
6. **呼叫处理**:支持触摸式快速拨号、重拨、呼叫转移、保持、转接和拾起等功能,本地支持3方会议,以及呼叫等待、未接电话通知等。 7. **安全性**:设备支持TLS传输层安全、配置文件加密、摘要鉴权以及HTTPS安全...
1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...
1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...
1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...
1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...
1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到...
1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 67 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...
1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...