当前位置: 代码迷 >> 综合 >> fgets、fputs、fgetc、fputc函数,并分别用fgets和fputs,fgetc和fputc配合实现文件拷贝
  详细解决方案

fgets、fputs、fgetc、fputc函数,并分别用fgets和fputs,fgetc和fputc配合实现文件拷贝

热度:17   发布时间:2024-01-29 00:52:08.0

更多资料请点击:我的目录

fgets(从指定文件读取最多一行数据)
char *fgets(char *s, int size, FILE *stream);
s:自定义缓冲区指针
size:自定义缓冲区大小
stream:即将被读取数据的文件指针fputs(数据写入指定的文件)
int fputs(const char *s,FILE *stream);
s:自定义缓冲区指针
stream:即将被写入数据的文件指针fgetc(获取指定文件的一个字符)
int fgetc(FILE *stream);
stream:即将被读取数据的文件指针fputc(将一个字符写入指定的文件)
int fputc(int c , FILE *stream);
c:要写入的字符
stream:即将被写入数据的文件指针

用fgetc和fputc配合实现文件拷贝

#include <time.h>
#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdint.h>
#include <string.h>
#include <strings.h>
#include <stdbool.h>
#include <pthread.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <sys/types.h>int main(int argc, char **argv)
{if(argc != 3){perror("输入格式错误!\n");return -1;}FILE *src = fopen(argv[1],"r");FILE *dst = fopen(argv[2],"w+");if(src == NULL || dst == NULL){perror("文件打开失败!!\n");return -1;}while(1){		char buf = 0;buf = fgetc(src);if(feof(src))break;fputc(buf , dst);}fclose(src);fclose(dst);return 0;
}

用fgets和fputs配合实现文件拷贝

#include <time.h>
#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdint.h>
#include <string.h>
#include <strings.h>
#include <stdbool.h>
#include <pthread.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <sys/types.h>int main(int argc, char **argv)
{if(argc != 3){perror("输入格式错误!\n");return -1;}FILE *src = fopen(argv[1],"r");FILE *dst = fopen(argv[2],"w+");if(src == NULL || dst == NULL){perror("文件打开失败!!\n");}while(1){		char buf[100] = {0};fgets(buf,100,src);if(feof(src)){printf("到达文件末尾!\n");break;}fputs(buf,dst);}fclose(src);fclose(dst);return 0;
}