把握今天,才能拥有明天!!!
小技巧:当测试输入数据过多时,可使用文件读写。
C/C++提供了一系列库函数,声明于stdio.h中,用于进行文件操作。既可以从文件中读取数据,也可以向文件中写入数据。读写文件之前,首先要打开文件。读写文件结束后,要关闭文件。这里介绍其中几个常用的文件操作库函数。
用fopen打开文件
“r”: 以文本方式打开文件,只进行读操作。
“w”: 以文本方式打开文件,只进行写操作。
“a”: 以文本方式打开文件,只往其末尾添加内容。
“rb”: 以二进制方式打开文件,只进行读操作。
“wb”: 以二进制方式打开文件,只进行写操作。
“ab”: 以二进制方式打开文件,只往其末尾添加内容。
“r+”: 以文本方式打开文件,既读取其数据,也要往文件中写入数据。
“r+b”:以二进制方式打开文件,既读取其数据,也要往文件中写入数据。
这里“文本方式”适用于文本文档(如txt),而“二进制方式”适用于任何文件,(如音频,视频文档)。 如果以读写或只写方式打开一个不存在的文件,那么该文件就会被创建。
FILE *fp=fopen("c:\\data\\report.txt","r");
上面的语句以只读的方式打开文件。 给定文件名的时候也可以不给路径,那么fopen函数执行时就在当前目录下寻找该文件。
用fclose关闭文件
打开文件,读写完毕后,一定要调用fclose关闭文件。如果文件打开到一定数目后,将不能打开新文件。
用fclose关闭文件
打开文件,读写完毕后,一定要调用fclose关闭文件。如果文件打开到一定数目后,将不能打开新文件。
用fscanf读文件,用fprintf写文件
假设有文本文档studen.txt存放在C盘tmp文件夹下。 Tom 08701342 male 1985 11 2 3.47 Jack 08701343 male 1985 10 28 3.65 Mary 08701344 female 1984 2 28 2.34 该文件里文件里每行记录了一个同学的信息,依次是姓名,学号,性别,出生年月日,绩点。 用下面程序打开此文件。
#include<stdio.h>
int main()
{
FILE *fp;
fp=fopen("c:\\tmp\\students.txt","r");
if(fp==NULL){
printf("Failed to open the file.");
return ;
}
char szName[30],szGender[30];
int nID,nBirthDay,nBirthMonth,nBirthYear;
float fGPA;
while(fscanf(fp,"%s%d%s%d%d%d%f",szName,&nID,szGender,&nBirthYear,&nBirthMonth,&nBirthDay,&fGPA)!=EOF){
printf("%s%d%s%d%d%d%f",szName,nID,szGender,nBirthYear,nBirthMonth,nBirthDay,fGPA)
}
fclose(fp);
return 0;
}
fprintf向文件写入数据,与fscanf类似。
fgetc读取字符 fputc写入字符 fgets fputs fread fwrite fseek 用到时在说吧!!!