本文共 1375 字,大约阅读时间需要 4 分钟。
(1).读写文件中字符的函数(一次只读写文件中的一个字符):
int fgetc(FILE *stream);
int fgetchar(void);
int fputc(int ch,FILE *stream);
int fputchar(int ch);
int getc(FILE *stream);
int putc(int ch,FILE *stream);
其中fgetc()函数将把由流指针指向的文件中的一个字符读出,例如:
ch=fgetc(fp);
将把流指针fp指向的文件中的一个字符读出,并赋给ch,当执行fgetc()函数时,若当时文件指针指到文件尾,即遇到文件结束标志EOF(其对应值为-1),该函数返回一个-1给ch,在程序中常用检查该函数返回值是否为-1来判断是否已读到文件尾,从而决定是否继续。
#include "stdio.h"
main()
{
FILE *fp;
ch ch;
if((fp=fopen("myfile.tex","r"))==NULL)
{
printf("file cannot be opened\n");
exit(1);
}
while((ch=fgetc(fp))!=EOF) fputc(ch,stdout);
fclose(fp);
}
该程序以只读方式打开myfile.txt文件,在执行while循环时,文件指针每循环一次后移一个字符位置。用fgetc()函数将文件指针指定的字符读到ch变量中,然后用fputc()函数在屏幕上显示,当读到文件结束标志EOF时,变关闭该文件。
上面的程序用到了fputc()函数,该函数将字符变量ch的值写到流指针指定的文件中去,由于流指针用的是标准输出(显示器)的FILE指针stdout,故读出的字符将在显示器上显示。又比如:
putc(ch,fp);
该函数执行结构,将把ch表示的字符送到流指针fp指向的文件中去。
在TC中,putc()等价于fput(),getc()等价于fgetc()。
putchar(c)相当于fputc(c,stdout);getchar()相当于fgetc(stdin)。
注意,这里使用char ch,其实是不科学的,因为最后判断结束标志时,是看ch!=EOF,而EOF的值为-1,这显然和char是不能比较的。所以,某些使用,我们都定义成int ch。
示例代码如下:
#define _CRT_SECURE_NO_WARNINGS #include#include #include void main01_fputc(){ int i = 0; FILE *fp = NULL; //char *filename = "c:\\1.txt"; char *filename2 = "c:/2.txt"; // 统一的用45度 char a[27]= "abcdefghijklmn"; fp = fopen(filename2, "r+"); if (fp == NULL) { printf("func fopen() err:%d \n"); return; } printf("打开成功\n"); for (i=0; i
转载地址:http://cqzmi.baihongyu.com/