fgetc、fputs、fgets函数使用及实例——Linux编程——day2

本文详细介绍了C语言中的四个文件操作函数:fgetc用于逐个字符读取,fputc用于写入字符,fgets用于读取字符串,fputs用于写入字符串。通过示例展示了如何统计文件行数、文件内容复制以及读写文件内容的过程。
摘要由CSDN通过智能技术生成

今天主要学习了fgetc、fputs、fgets函数的使用规则

fgets

int fgetc(FILE *stream);
      功能:
        从流中读取下一个字符
      参数:
        stream:文件流指针
      返回值:
        成功返回读到字符的ASCII码值
        失败返回EOF
        读到文件末尾返回EOF

示例:编写程序统计文件的行数

该示例主要统计stdio.h文件中的行数
#include<stdio.h>

int main(void)
{
	FILE *p = NULL;
	p = fopen("/usr/include/stdio.h","r");

	if(NULL == p)
	{
		perror("fail to fopen!");
		return -1;
	}

	char ch;
	int i = 0;

	while(EOF != (ch = fgetc(p)))
	{
		if('\n' == ch)
		{
			++i;
		}
	}

	fclose(p);
	printf("line = %d\n",i);

	return 0;
}

在这里插入图片描述

fgetc/fputc与getchar/putchar的区别

char ch = 0;
ch = getchar();
ch = fgetc(stdin);

char ch = 'a'
putchar(ch);
fputc(ch, stdout);

示例:实现将一个文件中的内容拷贝到另一个文件中
我们首先在file.txt文件中写入hello world china!,将其拷贝到a.txt文件中

#include<stdio.h>

int main(void)
{
	FILE *src = NULL;
	FILE *dest = NULL;
	char ch;

	src = fopen("file.txt","r");
	dest = fopen("a.txt","w");

	if(NULL == src || NULL == dest)		//打开失败,直接返回
	{
		perror("fail to fopen");
		return -1;
	}

	while(EOF != (ch = fgetc(src)))
	{
		fputc(ch,dest);
	}

	printf("save success!\n");

	fclose(src);
	fclose(dest);

	return 0;
}

在这里插入图片描述
可以看到,复制文件成功。

fputs

int fputs(const char *s, FILE *stream);
      功能:
        向流中写入一个字符串
      参数:
        s:字符串首地址
        stream:文件流指针
      返回值:
        成功返回非负数
        失败返回EOF

示例:在file.txt文件中写入:hello world!

#include<stdio.h>

int main(void)
{
	FILE *stream;
	stream = fopen("file.txt","w");
	char s[20] = "hello world!";

	if(NULL == stream)
	{
		perror("fail to fopen");
		return -1;
	}

	fputs(s,stream);

	printf("success!\n");

	fclose(stream);

	return 0;
}

结果:
在这里插入图片描述

fgets

char *fgets(char *s, int size, FILE *stream);
      功能:
        从流中读取一个字符串
      参数:
        s:存放字符串空间首地址
        size:最多读取字符的个数
        stream:文件流指针
      返回值:
        成功返回存放字符串空间的首地址
        失败返回NULL
        读到文件末尾返回NULL

示例:刚刚在file.txt文件中写入了字符串,现在将其输出出来

#include<stdio.h>

int main(void)
{
	FILE *src = NULL;
	src = fopen("file.txt","r");
	char ch[20];

	if(NULL == src)
	{
		perror("fail to fopen");
		return -1;
	}

	fgets(ch,sizeof(ch),src);

	printf("%s\n",ch);

	fclose(src);

	return 0;
}

结果:
在这里插入图片描述

以上就是今天全部内容

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值