#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);
}
分享到:
相关推荐
1、 首先用Section打开工程文件,把所有文件设为编辑状态,然后对地形等高线文件进行高程赋值——新建线属性高程字段(原MapGis需要这样做,用Section剖面图菜单下的自动赋高程不需新建此字段(拖动操作))。...
请注意,检查每一条路径是一件消耗极大的操作,特别是修订版本日志,服务器会检查在每一个修订版本的每一条路径是否可读,对于影响很多文件的修订将会花费很多时间。 认证和授权是不同的处理过程,如果用户希望...
220、文件和目录(I/O)操作 54 230、J2EE的优越性 54 231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的...
220、文件和目录(I/O)操作 54 230、J2EE的优越性 54 231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的...
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文件中用回车或空格进行分隔。 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...
37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; .................. 25 38、try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不 会被执行,什么时候被执行,在 ...