标准文件读写操作

文件使用方式        意 义
“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<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();
}

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();
}

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<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();
}

posted on 2008-07-21 10:17  lei1217  阅读(320)  评论(0编辑  收藏  举报

导航