Day 2.几个简单的函数接口 今日份浅学

1.函数接口

(1).fgetc:

  int fgetc(FILE *stream);

  功能:从流中度区下一个字符

  参数:

      stream:文件流指针

  返回:

     成功返回ASCII值  失败返回 EOF  读到文件末尾返回EOF

练习:

读出文件内容的行数

#include <stdio.h>

int main (void)
{
	FILE *fp = NULL;
	char ch = 0 ;

	fp = fopen ("file.txt","r");
	if (fp ==NULL)
	{
		perror("file to fopen");
		return -1;
	}

	int i = 0;
	while(1)
	{
		ch = fgetc(fp);
		if (ch == '\n')
		{
			++i;
		}
		if (EOF == ch)
		{   
			break;
		}
	//	printf ("ch = %c\n",ch);
	}

	printf ("len = %d\n",i);

	fclose(fp);

	return 0;
}

(2).fgetc/fputc与getchar/putchar的区别   (等价)

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

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

练习:

实现将一个文件中的内容拷贝到另一个文件中

#include <stdio.h>

int main (void)
{
    FILE *fp = NULL;  
	char ch = 0 ;
	FILE *fq = NULL;  //定义两个文件的指针流 

	fp = fopen ("file.txt","r");   //读取源文件并用fp接收
	fq = fopen ("file1.txt","w");   //创建一个文件并写入 用fq接收

	if (fp == NULL)               
	{
		perror("file to fopen");     //判断是否有源文件 没有则返回-1
		return -1;
	}

	if (fq == NULL)
	{
		perror("file1 to fopen");    //判断是否有目标文件  没有则返回-1
		return -1;
	}

	while(1)         //进入循环
	{
		ch = fgetc(fp);    //将源文件读到的每个字符用ch接收

		if (EOF == ch)
		{   
			break;           //直到将最后一个字符读完 跳出循环
		}
		fputc(ch,fq);    //将读到的每个字符依次写入到目标文件中
	}

	fclose(fp);     
    fclose(fq);    //释放掉这两个文件指针的缓冲区

    return 0;
}

(3).fputs

     int fputs(const char *s,FILE *stream);

     功能:向流写入一个字符串

    参数:

          s:字符串收首地址

 stream:文件流指针

   返回值:成功返回非负数  失败返回EOF

练习:

将一个一组数组的一个字符串写入到指定文件按中

#include <stdio.h>

int main (void)
{	
    FILE *fp = NULL;
	char s[30] = {"hello world"};

	fp = fopen("file2.txt","w"); 

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

	fputs(s,fp);
	fclose(fp);


	return 0;
}

(4).fgets

  char *fgets(char *s,int size,FILE *stream);

  功能:从流中读取一个字符串

  参数:

      s:存放字符串空的首地址

  size:最多读取字符的个数

stream:文件流指针

  返回值:成功返回存放文件字符串的首地址   失败返回NULL  读到文件末尾返回NULL

练习:

将指定文件的指定字符串中的指定个数的字符读到所定义的数组中

#include <stdio.h>

int main(void)
{
	FILE *fp = NULL;
	char tmpbuff[3] = {0};
	
	fp = fopen("file.txt", "r");
	if (NULL == fp)
	{
		perror("fail to fopen");
		return -1;
	}

	fgets(tmpbuff, sizeof(tmpbuff), fp);
	printf("tmpbuff = %s\n", tmpbuff);

	fclose(fp);

	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱敲代码yx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值