C语言基础之文件操作四

157 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第十四天,点击查看活动详情

文件操作

前言

接上篇,这里我们学习文件操作~(注:学习笔记)

fgetc()函数调用

ch = fgetc(fp);

函数功能:其意义时从打开的文件fp读取一个字符并送入ch中。

对于fgetc函数的使用注意:

  1. 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的
  2. 当文件内部有一个位置指针,用来指向文件的当前读写字节。
  3. 在文件打开时,该指针总是指向文件的第一个字节。使用fgetc函数后,该位置指针将向后移动一个字节。因此可连续多次使用fgetc函数读取多个字符。
  4. 应该注意文件指针和文件内部的位置指针不是一回事
  5. 文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值时不变的。
  6. 文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。
#include<stdio.h>
#include<stdlib.h>

 int main(){
 	
 	FILE *fp;
 	char ch,filename[20];
 	
 	printf("Please enter the filename you want to write:");
 	scanf("%s",filename);
 	
 	if(!(fp = fopen(filename,"r"))){
	 	printf("Can not open the file!\n");
	 	exit(0);
	 }
	 while(ch != EOF){
	 	ch = fgetc(fp);
	 	putchar(ch);
	 }
	 fclose(fp);
 	return 0;
 }

补充说明

  • 从一个文本文件顺序读入字符并在屏幕上显示出来

    ch = fgetc(fp);
    while(ch != EOF){
    	putchar(ch);
    	ch = fgetc(fp);
    }
    

注意:EOF不是可输出字符,因此不能在屏幕上显示。由于字符的ASCII码不可能出现-1,因此EOF定义为-1时合适的。当读入的字符值等于-1时,表示读入的已不是正常的字符而是文件结束符。

  • 从一个二进制文件顺序读入字符:

    while(!feof(fp)){
    	ch = fgetc(fp);
    }
    

声明

本篇是跟着b站上的小甲鱼视频学习时候做的笔记,方便以后复习,希望每天都能进步一点点!!!

链接附上:C语言学习之小甲鱼视频链接