标准文件读写操作
文件使用方式 意 义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加offset个位移量。
SEEK_END将读写位置指向文件尾后再增加offset个位移量。
当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。
下列是较特别的使用方式:
1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);
2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);
1、编程实现读出磁盘文件datafile.txt中的内容,将它们显示在屏幕上
3、逐行读出datafile.txt文件中的字符并显示出来
4、从键盘输入若干行字符,把它们添加到磁盘文件datafile.txt中
编程完成读出文件中的内容,反序输出到屏幕中
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加offset个位移量。
SEEK_END将读写位置指向文件尾后再增加offset个位移量。
当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。
下列是较特别的使用方式:
1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);
2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);
1、编程实现读出磁盘文件datafile.txt中的内容,将它们显示在屏幕上
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("c:\\datafile.txt","r"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while((ch=fgetc(fp))!=EOF)
fputc(ch,stdout);
fclose(fp);
getch();
}
2、编程完成从键盘输入字符后,写入到磁盘文件datafile.txt中#include<stdlib.h>
#include<conio.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("c:\\datafile.txt","r"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while((ch=fgetc(fp))!=EOF)
fputc(ch,stdout);
fclose(fp);
getch();
}
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("c:\\datafile.txt","w"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while((ch=fgetc(stdin))!='\n')
fputc(ch,fp);
fclose(fp);
getch();
}
#include<stdlib.h>
#include<conio.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("c:\\datafile.txt","w"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while((ch=fgetc(stdin))!='\n')
fputc(ch,fp);
fclose(fp);
getch();
}
3、逐行读出datafile.txt文件中的字符并显示出来
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
FILE *fp;
char buffer[64];
if((fp=fopen("c:\\datafile.txt","r"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while(!feof(fp))
{
if(fgets(buffer,64,fp)!=NULL)
printf("%s",buffer);
}
fclose(fp);
getch();
}
#include<stdlib.h>
#include<conio.h>
void main()
{
FILE *fp;
char buffer[64];
if((fp=fopen("c:\\datafile.txt","r"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while(!feof(fp))
{
if(fgets(buffer,64,fp)!=NULL)
printf("%s",buffer);
}
fclose(fp);
getch();
}
4、从键盘输入若干行字符,把它们添加到磁盘文件datafile.txt中
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void main()
{
FILE *fp;
char buffer[64];
if((fp=fopen("c:\\datafile.txt","a"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while(strlen(fgets(buffer,64,stdin))>1)
{
fputs(buffer,fp);
fputs("\n",fp);
}
fclose(fp);
getch();
}
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void main()
{
FILE *fp;
char buffer[64];
if((fp=fopen("c:\\datafile.txt","a"))==NULL)
{
printf("file cannot be opened!\n");
exit(1);
}
while(strlen(fgets(buffer,64,stdin))>1)
{
fputs(buffer,fp);
fputs("\n",fp);
}
fclose(fp);
getch();
}
编程完成读出文件中的内容,反序输出到屏幕中
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define N 5000
void main()
{
FILE *sfp;
int i;
char buf[N];
if((sfp=fopen("c:\\datafile.txt","r"))==NULL)
{
printf("Source file cannot be opened!\n");
exit(1);
}
i=0;
while(!feof(sfp))
{
buf[i++]=fgetc(sfp);
if(i>=N)
{
printf("buffer not enough!");
exit(1);
}
}
while(--i>=0)
fputc(buf[i],stdout);
fclose(sfp);
getch();
}
#include<stdlib.h>
#include<conio.h>
#define N 5000
void main()
{
FILE *sfp;
int i;
char buf[N];
if((sfp=fopen("c:\\datafile.txt","r"))==NULL)
{
printf("Source file cannot be opened!\n");
exit(1);
}
i=0;
while(!feof(sfp))
{
buf[i++]=fgetc(sfp);
if(i>=N)
{
printf("buffer not enough!");
exit(1);
}
}
while(--i>=0)
fputc(buf[i],stdout);
fclose(sfp);
getch();
}
lei1217