顺序读写函数的介绍:fgetc & fputc

目录

前提须知:

函数介绍:

fputc:

fpuct写到文件中,这个可以叫做文件流。

文件效果: 

若要将fputc写入屏幕中,可以采取以下代码操作:  

屏幕效果: 

 fgetc:

使用fgetc从标准流中读取数据。—从键盘中读取数据并使用变量接收和使用printf打印

 屏幕结果:输入字符q,由printf打印键盘输入的字符q

用fgetc读取文件:读取文件内容后用变量接收,并使用printf打印出来

文件数据: 

屏幕效果:

进行多次读取、接收、打印:

进行多次读取、接收、并打印的结果:

 fgetc的内涵:

注意,当读取的次数超过了字符的个数,那么会如以下所示:

读取文件中的数据: 

屏幕效果: 

使用fputc和fgetc进行文件拷贝操作:

打开部分:

读写部分(拷贝部分): 

关闭部分:


前提须知:

文件操作的步骤:

  1. 打开文件
  2. 读/写文件
  3. 关闭文件

函数介绍:

顺序读写函数的介绍:fgetc & fputc_第1张图片

  • fgetc:一次只读取一个字符
  • fputc:一次写一个字符

注意:输出是写——“w”,输入是读——“r” 

fputc:

fpuct写到文件中,这个可以叫做文件流。

int main()
{
   FILE * pf = fopen("test.txt","w");
   if(pf == NULL)
   {
       perrot("fopen");
       return 1;
   }
   //写文件
   fputc('x',pf);
   fputc('y',pf);
   fputc('z',pf);
   fputc('q',pf);
   

  fclose(pf);
  pf = NULL;
   return 0;
}
文件效果: 

 顺序读写函数的介绍:fgetc & fputc_第2张图片

若要将fputc写入屏幕中,可以采取以下代码操作:  

int main()
{
	fputc('b', stdout);
	fputc('i', stdout);
	fputc('t', stdout);

	return 0;
}

stdout是标准输出流, 之前的pf是一个文件指针,fpuct可以使用任何输出流。

屏幕效果: 

 顺序读写函数的介绍:fgetc & fputc_第3张图片

标准输入流、输出流详情:http://t.csdn.cn/bi7Q9icon-default.png?t=N7T8http://t.csdn.cn/bi7Q9 

 fgetc:

使用fgetc从标准流中读取数据。—从键盘中读取数据并使用变量接收和使用printf打印

int main()
{
	int ch = fgetc(stdin);
	printf("%c\n",ch);
	return 0;
}
 屏幕结果:输入字符q,由printf打印键盘输入的字符q

顺序读写函数的介绍:fgetc & fputc_第4张图片

用fgetc读取文件:读取文件内容后用变量接收,并使用printf打印出来

int main()
{
	FILE* pf = fopen("data.txt","r");
	if (pf == NULL)
	{
		perror("fopen");
	}
	//读文件
	int ch = fgetc(pf);
	printf("%c\n",ch);

	fclose(pf);
	pf = NULL;
	return 0;
}
文件数据: 

顺序读写函数的介绍:fgetc & fputc_第5张图片

屏幕效果:

顺序读写函数的介绍:fgetc & fputc_第6张图片

将文件中的数据读取到屏幕上,但是fgetc一次只能读取一个字符,所以在屏幕上显示的只有第一个字符。

进行多次读取、接收、打印:

	//读文件
	int ch = fgetc(pf);
	printf("%c\n",ch);

	int ch = fgetc(pf);
	printf("%c\n",ch);

	int ch = fgetc(pf);
	printf("%c\n",ch);

进行多次读取、接收、并打印的结果:

 顺序读写函数的介绍:fgetc & fputc_第7张图片

 fgetc的内涵:

这个其实证明了fgetc会在文件内部布设一个指针,每一次读取完后,指针向后,指向后面的一个字符,关闭文件,这个指针会重置位置。

注意,当读取的次数超过了字符的个数,那么会如以下所示:

读取文件中的数据: 
	//读文件
	int ch = fgetc(pf);
	printf("%c\n",ch);

	int ch = fgetc(pf);
	printf("%c\n",ch);

	int ch = fgetc(pf);
	printf("%c\n",ch);

	int ch = fgetc(pf);
	printf("%c\n",ch);
屏幕效果: 

 顺序读写函数的介绍:fgetc & fputc_第8张图片

使用fputc和fgetc进行文件拷贝操作:

打开部分:

FILE* pfread = fopen("datal.txt","r");
if (pfread == NULL)
{
  perror("fopen-1");
  return 1;
}
FILE * pfwrite = fopen("data2.txt","w");
if (pfwrite == NULL)
{
   perror("fopen-2");
   fclose(pfread);
   pfread = NULL;
   return 1;
}

打开文件部分,分别打开两个文件,第一个文件是读的,第二个文件是写的,当然如果写的文件出错了,那么读的文件也没有必要存在了,所以当写的文件打开出错后便关闭读的文件。

读写部分(拷贝部分): 

//读文件 - 写文件
int ch = 0;
while ((ch = fgetc(pfread)) != EOF)
{
  fputc(ch, pfwrite);
  return 0;
}

循环部分,读取一个文件,把读取的字符使用变量接收,然后让fpuct将变量内容写入文件中。 

关闭部分:

fclose(pfread);
pfread = NULL;
fclose(pfwrite);
pfwrite = NULL;

你可能感兴趣的:(文件操作,C语言,数据存储,数据存储,c语言,函数,文件操作)