10. 文件的使用方式:
11. 文件使用方式注意事项:
1) 文件使用方式由r w a t b +六个字符拼成
r 读
w 写
a 追加
t 文本文件,可省略不写
b 二进制文件
+ 读和写
2) 凡用r打开一个文件时,该文件必须已经存在,且只能从该文件读出
3) 用w打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则该文件删去,重建一个新文件
4) 若要向一个已存在的文件追加新的信息,只能用”a“方式打开文件。如果文件不存在,也会自动帮我们创建
5) 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
6) 把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把温江以文本方式写入磁盘时,也要把二进制码转换成ASCII,因此文本文件的读写要花费较多的转换时间,对二进制文件的读写不存在这种转换
7) 标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。
12. 字符写入函数fputc
字符读写函数是以字符(字节)为单位的读写函数,每次可从文件读出或向文件写入一个字符。
Fputc函数的功能是把一个字符写入指定的文件中,函数调用的形式为:
Fputc(字符量,文件指针);
其中,特写如的字符量可以是字符常量或变量,例如:
Fputc(’a‘,fp);
其意义是把字符a写入fp所指向的文件中。
18.字符串读写函数:
写入:fputs
Fputs(字符串,文件指针);
#include <stdio.h>
void test(){
//写入字符串到文件中
char str[]="welcome to afuhan";
//定义文件指针
//打开文件
FILE *fp = fopen("fputs.txt", "w");
//判断
int count=0;
if (fp!=NULL) {
//写字符串到文件中
//count 返回的事本次写入的字符串的长度
count = fputs(str, fp);
printf("写入成功,本次写入%d个字符\n",count);
}
//关闭文件指针
fclose(fp);
}
/**
* 字符串的追加
*/
void test1(){
//写入字符串到文件中
char str[]="welcome to afuhan";
//定义文件指针
//打开文件,追加是在文件的末尾追加
FILE *fp = fopen("fputs.txt", "a"); //a append
//判断
int count=0;
if (fp!=NULL) {
//写字符串到文件中
//count 返回的事本次写入的字符串的长度
count = fputs(str, fp);
printf("写入成功,本次写入%d个字符\n",count);
}
//关闭文件指针
fclose(fp);
}
int main(int argc, const char * argv[]) {
//写入字符串到文件中
char str[]="welcome to afuhan\n";
//定义文件指针
//打开文件
FILE *fp = fopen("fputs.txt", "r"); //r read
//判断
char str2[100];
if (fp!=NULL) {
//fgets(ch,10,stdin);
//从文件中读取字符到字符数组str2中
// 数组名 长度 文件指针
fgets(str2, sizeof(str2), fp);
//fputs(str, fp);
//sizeof(str2) 100
//注意:
//1)fgets读取的时候,当文件内容读取完毕后,会给字符加上结束符\0
//2)fgets读取的时候,遇到\n或者EOF,读取结束
printf("str2---->%s\n",str2);
}
//关闭文件指针
fclose(fp);
return 0;
}
19.读取数据块的函数fread和fwrite
读数据块函数调用的一般形式:
Fread(buffer,size,count,fp);
写数据块函数调用的一般形式:
Fwrite(buffer,size,count,fp);
#include <stdio.h>
#include <string.h>
void test(){
//fwrite 写一个数据块
//先写一个字符串
//定义文件指针,并且打开文件
FILE *fp = fopen("fwrite.txt", "w");
if (fp!=NULL) {
//写文件
char *str ="helloworld!";
//用fwrite写数据
//fwrite(地址,块大小,块数,文件指针);
fwrite(str, strlen(str), 1, fp);
printf("写入成功!\n");
}
fclose(fp);
}
/**
* fread读取字符串
*/
void test1(){
//视频
//定义文件指针,并且打开文件
FILE *fp = fopen("fwrite.txt", "r");
if (fp!=NULL) {
//写文件
char *str ="helloworld!";
//用fread读取数据
//fread(地址,块大小,块数,文件指针);
char ch[12];
fread(ch, sizeof(ch), 1, fp);
printf("%s\n",ch);
}
fclose(fp);
}
int main(int argc, const char * argv[]) {
//视频
//定义文件指针,并且打开文件
FILE *fp = fopen("fw.data", "wb");
if (fp!=NULL) {
int a = 123;
fwrite(&a, sizeof(int), 1, fp);
printf("写入成功!");
}
fclose(fp);
return 0;
}
|
|