小甲鱼 P57 读写文件1

小甲鱼 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;
}

猜你喜欢

转载自blog.csdn.net/xiaodingqq/article/details/82983714