IO学习系列之使用fgets和fputs复制文件内容

  • fgets函数:
  • 功能:从文件中读取小于size个字符,遇到EOF或者'\n'时停止读取
    并且会将换行符也一起存到s指向的缓冲区里,在字符串最后添加'\0’;
  • 具体内容:
#include 

char *fgets(char *s, int size, FILE *stream);
/*
参数:

		s:	用来存放读取的内存的缓冲区的首地址
	
		size:	想读取的字节数
	
		stream:	文件指针
	
返回值:

		成功 	指针s的地址
	
		失败 	NULL
*/
  • fputs函数:
  • 功能:将s指向的字符串写到文件中,'\0'不会写入文件
  • 具体内容:
#include 

int fputs(const char *s, FILE *stream);
/*
功能:

    	将s指向的字符串写到文件中,'\0'不会写入文件
    	
参数:

    	s:		要写入的字符串的首地址
    	
    	stream:		文件指针
    	
返回值:

    	成功 非负数
    	
    	失败 -1
*/
  • 示例代码:
/*
    使用 fgets 和 fputs 实现文件的拷贝。
*/


#include 

int main(int argc, const char *argv[])
{

    if(3 != argc)
    {

        printf("Usage:%s src_file dest_file\n",argv[0]);

        return -1;

    }

    FILE *fp1 = fopen(argv[1],"r");

    if(NULL == fp1)
    {
        perror("fopen error");
        return -1;
    }
       
    
    FILE *fp2 = fopen(argv[2],"w");

    if(NULL == fp2)
    {
        perror("fopen error");
        return -1;
    }
        
    char buff[128] = {0};

    while(NULL != fgets(buff,sizeof(buff),fp1)){

        fputs(buff,fp2);
    }

    fclose(fp1);
    
    fclose(fp2);
    
    return 0;
}

你可能感兴趣的:(IO学习系列,学习,标准IO,算法,Linux)