文件的初步操作2

文件的顺序读写:
一个文件打开后可以对它进行续写操作。所有对文件的读写操作都可以调用文件读写库函数来实现。下面是常用的读写库函数:

1>字符读写函数:每次读或写一个字符,使用fgetc()和fputc()函数。
2>字符串读写函数:每次读或写一行字符,以换行符终止使用fgets()和fputs()函数。
3>数据块读写函数:每次读或者写某种数量的对象,而每个对象具有指定长度,使用fread()和fweite()函数。
4>格式读写函数:按照指定的格式要求进行读或者写,使用fscanf()和fprintf()函数。

1)fputc函数:是将一个字符写入到文件指针所指向的文件的当前位置。
int fputc(int c;FILE *fp)
函数返回一个整形的值,如果写成功,则返回写入字符的ASCII值,否则返回EOF即-1.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char ch;
    if((fp=fopen("D:\\text.txt","w"))==NULL)
    {
        printf("can't open the file!");
        exit(0);
    }
    printf("enter charactres(end with'#'):\n");
    ch=getchar();
    while(ch!='#')
    {
        fputc(ch,fp);    //将字符ch写入文件指针fp所指向的位置
        ch=getchar();
    }
    fclose(fp);
    return 0;
}

2.>fgetc()函数:从文件指针所指向的文件中读取一个字符。其与上面的fputs函数用法相同。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char ch;
    if((fp=fopen("D:\\text.txt","r"))==NULL)
    {
        printf("can't open the file!");
        exit(0);
    }
    printf("the content in file is: \n");

    while((ch=fgetc(fp))!=EOF)
    putchar(ch);
    putchar('\n');
    fclose(fp);
    return 0;
}

3.fgets()和fputs()
这两个函数是对字符串的操作,
fgets(str,n,fp)从fp指向的文件的当前位置最多读取n-1个字符存入s指向的内存区,字符串末尾自动加上‘\o’,

fputs函数
fputs(str,fp)将指定的字符串写入到fp指向的文件中。
如果写入成功则返回0,不成功则返回EOF
字符串最后的\0并不写入到文件中,也不会自动加上\n

4 fread()和fwrite()函数
数据块读写函数。只要用于二进制文件的读写。

首先介绍一个判断文件结束函数feof(),在C语言中只有文本文件才可以用EOF作为文件结束标志,而二进制文件只能以feof()函数来判断文件是否结束(文本文件也能用这个)
feof(fp);文件结束返回1,否则返回0;

FILE *fp;
int score[5]={70,90,80,52,90};
fweite(score,sizeof(int),5,fp)
//中间的sizeof是每个数据项的字节数,n是要写出数据项的个数

fread函数
从二进制格式从文件中读取一组数据

FILE *fp;
int score[5]={70,90,80,52,90};
fread(score,sizeof(int),5,fp)
//中间的sizeof是每个数据项的字节数,n是要写出数据项的个数

fscanf()和fprintf()
样例fscanf(fp,“%d%d”,&a,&b)
fscanf(fp,“%d%d”,a,b)
有关格式控制详见C语言程序设计及在线实践

猜你喜欢

转载自blog.csdn.net/zhangzhiyuan88/article/details/80406515