文件

文件复位

将文件指针复位的2种方法

第一种
rewind(fp);

第二种
fseek(fp,0L,SEEK_SET)

起始点 表示符号 数字表示
文件首 SEEK—SET 0
当前位置 SEEK—CUR 1
文件末尾 SEEK—END 2
 例如:fseek(fp,100L,0);其意义是把位置
指针移到离文件首100个字节处。fseek函
数一般用于二进制文件。
#include<stdio.h>
int main() {
	char ch;
	FILE* fp;
	fp = fopen("test.cpp", "rt");

	puts("\n第1次输出文件:\n");
	while ((ch=fgetc(fp))!=EOF) putchar(ch);

	//将文件指针复位的2种方法
	rewind(fp);
	//或者
	//fseek(fp,0L,SEEK_SET);

	puts("\n第2次输出文件:\n");
	while ((ch = fgetc(fp)) != EOF) putchar(ch);

	fclose(fp);

	return 0;
}

文件拷贝

#include<stdio.h>
int main() {
    FILE* fp1 = fopen("test.cpp", "rt");
    FILE* fp2 = fopen("test.txt", "wt");

    while (!feof(fp1)) {
        fputc(fgetc(fp1), fp2);
    }

    fclose(fp1);
    fclose(fp2);
    return 0;
}
//正确的程序如下:fflush函数的使用

#include <stdio.h>

#include <ctype.h>



int main() {

    char ch;

    FILE *fp=fopen("test.txt","r+");

    while ((ch=fgetc(fp))!=EOF) {

        fseek(fp,-1,1);

        fputc(islower(ch)?toupper(ch):tolower(ch),fp);

        fflush(fp); //没有这个语句结果是错误的!

    }

    fclose(fp);

    return 0;

}

注意文件读写函数用法

fgetc
fputc
fgets
fputs
数据块读写fwrite fread
格式化读写fscanf fprintf
...
posted @ 2024-12-02 18:12  某朝  阅读(2)  评论(0编辑  收藏  举报