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

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

fgets

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

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

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

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

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

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;
}

结果:
fgetc、fputs、fgets函数使用及实例——Linux编程——day2_第1张图片

fgets

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

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

#include

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;
}

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

以上就是今天全部内容

你可能感兴趣的:(Linux,linux,java,服务器)