C语言学习笔记---字符处理函数getc()和getchar()函数

625 阅读3分钟

「这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」。

getchar()函数

  在C语言中通常读取字符比较多的是getchar()函数,和它一起使用的和字符打印函数putchar()。这两个函数读取字符和打印字符默认的都是从键盘读取数据,并且在终端中打印。使用示例如下:

int main()
{
	char ch;
	
	puts("输入一个字符:");
	ch = getchar();
	
	puts("输入的字符为:");
	putchar(ch);

	system("pause");
	return 0;
}

  使用getchar()函数从键盘读取一个字符,然后通过putchatr()函数再将读取的字符打印到终端上。 在这里插入图片描述   在键盘上输入字符a之后,接着打印出a字符。注意getchar()函数每次只能读取一个字符,就算输入了多个字符,也只会打印输入的第一个字符。

在这里插入图片描述   getchar()和putchar()函数只适合单个的字符读取和打印。

getc()函数

  有时候读取字符的时候不一定只从控制台上读取,也需要从文件中读取,这时就可以使用getc()函数,它可以用来从指定的文件中读取字符,它里面有一个参数,这个参数就是需要读取文件的指针。和它对应的向文件写一个字符的函数是putc()函数。

int main()
{
	FILE *fp;
	int ret;
	char ch; 

	/* 打开文件 */
	fp = fopen("123.txt","r");
	if(fp==NULL)
		puts("打开失败!");
	else
		puts("打开成功!");
		
	ch = getc(fp);
	while(ch != EOF)
	{
		putchar(ch);
		ch = getc(fp);
	}	
		
	/* 关闭文件 */
	ret = fclose(fp);
	if(ret == 0)
		puts("关闭成功!");
	else
		puts("关闭失败!");

	system("pause");
	return 0;
}

  使用fopen()函数打开 一个文本文件,然后使用getc()函数依次读取文件中的内容,并通过putchar()函数将文件中的内容打印到控制台上,内容打印完毕后,使用fclose()函数关闭打开的文件。 在这里插入图片描述   这里是把文件输出到了控制台,也可以使用putc()函数,将字符写入到另一个文件中。修改上面的代码如下:


int main()
{
	FILE *in,*out;
	int ret;
	char ch; 

	/* 打开文件 */
	in = fopen("123.txt","r");
	if(in == NULL)
		puts("打开失败!");
	else
		puts("打开成功!");
		
	out = fopen("111.txt","w");	
	ch = getc(in);
	while(ch != EOF)
	{
		putc(ch,out);
		ch = getc(in);
	}	
		

	/* 关闭文件 */
	ret = fclose(in);
	if(ret == 0)
		puts("关闭成功!");
	else
		puts("关闭失败!");
		
	ret = fclose(out);	

	system("pause");
	return 0;
}

  以只读模式打开123.txt文件,然后再以写模式打开 111.txt 文件,如果这个文件不存在,就新创建一个。使用getc()函数从123.txt文件中读取字符,然后使用putc()函数将读取到的字符写入111.txt文件中。这里putc()函数中有两个参数,第一个参数为待写入的字符,第二个参数为文件指针。 字符写入结束后,使用fclose()函数关闭打开的两个文件。 在这里插入图片描述   运行程序后会发现新建了一个111.txt文件,同时里面的内容为"123456789",和123.txt里面的内容一样。