小甲鱼 P57 读写文件1
读写单个字符
fgetc()函数:用于从文件流中读取下一个字符并推进文件的位置指示器(用来指示接下来读写的下一个字符的位置)
fputc()函数:用于将一个字符写入到指定的文件中并推进文件的位置指示器
读写单个字符:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp1;
FILE *fp2;
int ch;
if ((fp1 = fopen("hello.txt", "r")) == NULL)
{
printf("文件打开失败!\n");
exit(EXIT_FAILURE);
}
if ((fp2 = fopen("fishc.txt", "w")) == NULL)
{
printf("文件打开失败!\n");
exit(EXIT_FAILURE);
}
while ((ch = fgetc(fp1)) != EOF)
{
fputc(ch, fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
读写整个字符串
fgets()函数:从指定文件中读取字符串。最多可以读取size-1个字符,因为结尾处会自动添加一个字符串结束符'\0',当读取到换行符('\n')或文件结束符(EOF)时,表示结束读取。
fputs()函数:将一个字符串写入到指定的文件中,表示字符串结尾的'\0'不会被一并写入。
feop()函数:检测文件的末尾指示器是否被设置。(检测到返回非0,检测不到返回0)
//读写整个字符串
//fgets和fputs
//先调用多次fput函数,将几个字符串依次写到文件中
//调用fget函数,在这个文件里面,读取并打印到屏幕上
#include <stdio.h>
#include <stdlib.h>
#define MAX 1024
int main(void)
{
FILE *fp;
char buffer[MAX];
//写
if ((fp = fopen("lines.txt", "w")) == NULL)
{
printf("打开文件失败!\n");
exit(EXIT_FAILURE);
}
fputs("Line one : Hello World!\n", fp);
fputs("Line two : Hello FishC!\n", fp);
fputs("Line three : I love FishC.com!\n", fp);
fclose(fp);//先关闭,这些内容都落实到文件里面去
//读
if ((fp = fopen("lines.txt", "r")) == NULL)
{
printf("打开文件失败!\n");
exit(EXIT_FAILURE);
}
//feof检测到末尾指示器被设置,返回一个非0值
//feof检测不到末尾指示器被设置,返回值位0
while (!feof(fp))
{
fgets(buffer, MAX, fp);//遇到EOF会结束
printf("%s", buffer);
}
fclose(fp);//先关闭,这些内容都落实到文件里面去
return 0;
}