欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > IO的概念和标准IO函数

IO的概念和标准IO函数

2025/3/11 2:42:37 来源:https://blog.csdn.net/qq_68945759/article/details/145998424  浏览:    关键词:IO的概念和标准IO函数

作业:

1.使用标准IO函数,实现文件的拷贝

#include <stdio.h>int main(int argc, char *argv[]) {// 检查是否提供了源文件和目标文件if (argc != 3) {printf("Usage: %s <source_file> <destination_file>\n", argv[0]);return 1;}// 打开源文件以读取FILE *source = fopen(argv[1], "rb");if (source == NULL) {perror("Error opening source file");return 1;}// 打开目标文件以写入FILE *destination = fopen(argv[2], "wb");if (destination == NULL) {perror("Error opening destination file");fclose(source);  // 关闭源文件return 1;}// 逐块读取源文件并写入目标文件char buffer[1024];  // 缓冲区用于存储读取的数据size_t bytesRead;while ((bytesRead = fread(buffer, 1, sizeof(buffer), source)) > 0) {fwrite(buffer, 1, bytesRead, destination);  // 写入目标文件}// 检查读取和写入是否成功if (ferror(source)) {perror("Error reading from source file");}if (ferror(destination)) {perror("Error writing to destination file");}// 关闭源文件和目标文件fclose(source);fclose(destination);printf("File copied successfully.\n");return 0;
}

2.使用fgets函数,打印一个文件,类似cat

#include <stdio.h>int main(int argc, char *argv[]) {// 检查是否传入了文件名参数if (argc != 2) {fprintf(stderr, "Usage: %s <filename>\n", argv[0]);return 1;}// 打开文件FILE *file = fopen(argv[1], "r");if (file == NULL) {perror("Unable to open file");return 1;}char buffer[1024];  // 用于存储每行读取的内容// 逐行读取文件并打印while (fgets(buffer, sizeof(buffer), file) != NULL) {printf("%s", buffer);  // 打印当前行内容}// 关闭文件fclose(file);return 0;
}

3.计算文件的行数

#include <stdio.h>int main(int argc, char *argv[]) {// 检查是否传入了文件名参数if (argc != 2) {fprintf(stderr, "Usage: %s <filename>\n", argv[0]);return 1;}// 打开文件FILE *file = fopen(argv[1], "r");if (file == NULL) {perror("Unable to open file");return 1;}char buffer[1024];  // 用于存储每行读取的内容int lineCount = 0;  // 用于计数行数// 逐行读取文件并计数while (fgets(buffer, sizeof(buffer), file) != NULL) {lineCount++;  // 每读取一行,行数加1}// 打印文件的行数printf("The file has %d lines.\n", lineCount);// 关闭文件fclose(file);return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词