表头文件 #include<stdio.h>
字符读写函数
1. fgetc()(由文件中读取一个字符)
【定义函数】int fgetc(FILE * stream);
【函数说明】 fgetc()从参数stream所指的文件中读取一个字符,若读到文件尾而无数据时便返回EOF。
【返回值】 getc()会返回读取到的字符,若返回EOF则表示到了文件尾。
【说明】在文件内部有一个位置指针,用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节,只用fgetc()函数后,该位置指针将向后移动一个字节,因此可连续多次使用fgetc函数,读取多个字符。
【例】
#include<stdio.h>
void main()
{
FILE*fp;
intc;
fp=fopen("D://exist.txt","r");
while((c=fgetc(fp))!=EOF)
printf("%c",c);
fclose(fp);
}
2. fputc()
【定义函数】 int fputc(int c,FILE * stream);
【函数说明】 fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中。
【返回值】 fputc()会返回写入成功的字符,即参数c,若返回EOF则代表写入失败。
【说明】文件指针和文件内部的位置指针不是一回事。
文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。
文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需要在程序中定义说明,而是由系统自动设置的。
【例】
#include <stdio.h>
void main()
{
FILE *fp;
char ch, filename[20];
printf("Pleaseinput the filename you want to write:");
scanf("%s",filename);
if(!(fp=fopen(filename,"at+")))//"at+"以读/写方式打开一个文本文件,允许读或在文本末追加数据。
{
printf("Cannot open the file!\n");
exit(0);//终止程序
}
printf("Pleaseinput the sentences you want to write:");
ch = getchar();
while(ch!= EOF)
{
fputc(ch,fp);
ch = getchar();
}
fclose(fp);
}
对代码进行如下改动可消除行首的空行: