IO的概念和标准IO函数

打印 上一主题 下一主题

主题 1020|帖子 1020|积分 3060




作业:
1.利用标准IO函数,实现文件的拷贝
  1. #include <stdio.h>
  2. int main(int argc, char *argv[]) {
  3.     // 检查是否提供了源文件和目标文件
  4.     if (argc != 3) {
  5.         printf("Usage: %s <source_file> <destination_file>\n", argv[0]);
  6.         return 1;
  7.     }
  8.     // 打开源文件以读取
  9.     FILE *source = fopen(argv[1], "rb");
  10.     if (source == NULL) {
  11.         perror("Error opening source file");
  12.         return 1;
  13.     }
  14.     // 打开目标文件以写入
  15.     FILE *destination = fopen(argv[2], "wb");
  16.     if (destination == NULL) {
  17.         perror("Error opening destination file");
  18.         fclose(source);  // 关闭源文件
  19.         return 1;
  20.     }
  21.     // 逐块读取源文件并写入目标文件
  22.     char buffer[1024];  // 缓冲区用于存储读取的数据
  23.     size_t bytesRead;
  24.     while ((bytesRead = fread(buffer, 1, sizeof(buffer), source)) > 0) {
  25.         fwrite(buffer, 1, bytesRead, destination);  // 写入目标文件
  26.     }
  27.     // 检查读取和写入是否成功
  28.     if (ferror(source)) {
  29.         perror("Error reading from source file");
  30.     }
  31.     if (ferror(destination)) {
  32.         perror("Error writing to destination file");
  33.     }
  34.     // 关闭源文件和目标文件
  35.     fclose(source);
  36.     fclose(destination);
  37.     printf("File copied successfully.\n");
  38.     return 0;
  39. }
复制代码
2.利用fgets函数,打印一个文件,类似cat
  1. #include <stdio.h>
  2. int main(int argc, char *argv[]) {
  3.     // 检查是否传入了文件名参数
  4.     if (argc != 2) {
  5.         fprintf(stderr, "Usage: %s <filename>\n", argv[0]);
  6.         return 1;
  7.     }
  8.     // 打开文件
  9.     FILE *file = fopen(argv[1], "r");
  10.     if (file == NULL) {
  11.         perror("Unable to open file");
  12.         return 1;
  13.     }
  14.     char buffer[1024];  // 用于存储每行读取的内容
  15.     // 逐行读取文件并打印
  16.     while (fgets(buffer, sizeof(buffer), file) != NULL) {
  17.         printf("%s", buffer);  // 打印当前行内容
  18.     }
  19.     // 关闭文件
  20.     fclose(file);
  21.     return 0;
  22. }
复制代码
3.计算文件的行数
  1. #include <stdio.h>
  2. int main(int argc, char *argv[]) {
  3.     // 检查是否传入了文件名参数
  4.     if (argc != 2) {
  5.         fprintf(stderr, "Usage: %s <filename>\n", argv[0]);
  6.         return 1;
  7.     }
  8.     // 打开文件
  9.     FILE *file = fopen(argv[1], "r");
  10.     if (file == NULL) {
  11.         perror("Unable to open file");
  12.         return 1;
  13.     }
  14.     char buffer[1024];  // 用于存储每行读取的内容
  15.     int lineCount = 0;  // 用于计数行数
  16.     // 逐行读取文件并计数
  17.     while (fgets(buffer, sizeof(buffer), file) != NULL) {
  18.         lineCount++;  // 每读取一行,行数加1
  19.     }
  20.     // 打印文件的行数
  21.     printf("The file has %d lines.\n", lineCount);
  22.     // 关闭文件
  23.     fclose(file);
  24.     return 0;
  25. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表