用C语言编写程序从命令行中同时获取输入文件名和输出文件名。
时间: 2024-05-10 19:21:26 浏览: 144
```
#include <stdio.h>
int main(void) {
char input_file[100], output_file[100];
printf("Enter input file name: ");
scanf("%s", input_file);
printf("Enter output file name: ");
scanf("%s", output_file);
printf("Input file name: %s\n", input_file);
printf("Output file name: %s\n", output_file);
return 0;
}
```
注:需要注意的是,如果文件名中含有空格等特殊字符,需要使用双引号将文件名括起来,例如:`./a.out "input file.txt" "output file.txt"`。
相关问题
用c语言编写一个文件拷贝程序,该程序通过命令行中获取原始文件名和目标文件名
以下是一个基本的文件拷贝程序,它通过命令行参数获取原始文件名和目标文件名并将文件内容从原始文件复制到目标文件中。
```c
#include <stdio.h>
int main(int argc, char *argv[]) {
FILE *src_file, *dst_file;
char c;
if (argc != 3) {
printf("Usage: %s <src_file> <dst_file>\n", argv[0]);
return 1;
}
src_file = fopen(argv[1], "rb");
if (src_file == NULL) {
printf("Error opening source file.\n");
return 2;
}
dst_file = fopen(argv[2], "wb");
if (dst_file == NULL) {
printf("Error opening destination file.\n");
fclose(src_file);
return 3;
}
while ((c = fgetc(src_file)) != EOF) {
fputc(c, dst_file);
}
fclose(src_file);
fclose(dst_file);
printf("File copied successfully.\n");
return 0;
}
```
在命令行中执行以下命令来运行该程序:
```
./filecopy input.txt output.txt
```
其中`input.txt`是原始文件名,`output.txt`是目标文件名。程序将从`input.txt`中读取内容并将其写入`output.txt`。如果文件无法打开或读取失败,则程序会在控制台输出错误消息并退出。如果文件成功复制,则程序将输出`File copied successfully.`。
c语言编写一个程序来创建给定文件的副本。文件名在命令行中指定。 输入格式
在C语言中,你可以使用标准库函数如`fopen()`, `fclose()`, 和 `fread()` 来读取源文件的内容,然后使用`fwrite()`函数将内容写入新的副本文件。以下是一个简单的示例程序,它接受命令行参数作为源文件名和目标文件名:
```c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
// 检查命令行参数的数量
if (argc != 3) {
printf("Usage: %s <source_file> <destination_file>\n", argv[0]);
return 1;
}
const char *src_filename = argv[1];
const char *dst_filename = argv[2];
// 打开源文件并检查打开是否成功
FILE *src_file = fopen(src_filename, "rb");
if (!src_file) {
perror("Failed to open source file");
return 1;
}
// 打开目标文件用于写入,如果不存在则创建
FILE *dst_file = fopen(dst_filename, "wb");
if (!dst_file) {
perror("Failed to create destination file");
fclose(src_file);
return 1;
}
// 读取源文件内容并写入目标文件
size_t bytes_read;
char buffer[4096]; // 可调整大小以适应文件大小
while ((bytes_read = fread(buffer, sizeof(char), sizeof(buffer), src_file)) > 0) {
fwrite(buffer, sizeof(char), bytes_read, dst_file);
}
// 关闭文件
fclose(src_file);
fclose(dst_file);
printf("Copied %s to %s successfully.\n", src_filename, dst_filename);
return 0;
}
```
要运行此程序,你需要提供两个参数,例如在命令行中输入:
```sh
./copy_file src.txt dest.txt
```
阅读全文