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