C语言文件写入问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 21:24:31
比如,只是比如,在一个1.txt文件里,有10GB的数据,其中,在距离文件开头100处,有一个数据1,我现在想把它写成2,而不想改动其它的数据,用fwrite可以操作吗?我试过了,如果在fopen后面写上'w'则数据会全丢失,是不是不可以用fwrite操作?如果可以的话请给告诉我怎么操作,不胜感激!

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:

#include<stdio.h>
int a;
char b,c[100];
int main(){
    FILE * fp1 = fopen("input.txt", "r");//打开输入文件
    FILE * fp2 = fopen("output.txt", "w");//打开输出文件
    if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
        puts("不能打开文件!");
        return 0;
    }
    fscanf(fp1,"%d",&a);//从输入文件读取一个整数
    b=fgetc(fp1);//从输入文件读取一个字符