从终端读取 input.txt 文件和 output.bmp 文件(C 编程)
Read input.txt file and also output.bmp file from terminal (C-programming)
我必须做一个作业,我必须编写一个 C 程序,它从控制台获取输入文件名作为命令行参数。
它应该将数据从 input.txt 文件(输入文件包含 bmp 文件的信息 - 颜色等)移动到生成的 output.png 文件。 20 20 个参数代表 output.png 图片的宽度和高度。
因此控制台请求(在 Linux 上测试)将如下所示:
./main input.txt output.bmp 20 20
我知道这段代码读取 input.txt 文件并将其显示在屏幕上。
FILE *input;
int ch;
input = fopen("input.txt","r");
ch = fgetc(input);
while(!feof(input)) {
putchar(ch);
ch = fgetc(input);
}
fclose(input);
这会(例如)将其写入 output.png 文件。
FILE *output;
int i;
output = fopen("ass2_everyinformationin.bmp", "wb+");
for( i = 0; i < 55; i++)
{
fputc(rectangle_bmp[i], output);
}
fclose(output);
但此代码仅在我直接在代码中硬编码名称时有效,而不是使用命令行参数。
我不知道如何实现它,我也没有在互联网上找到任何有用的信息,也许有人可以帮助我。
问候
标准 main() 的完整原型是
int main(int argc, char* argv[]);
你得到一个包含参数数量的整数,argc
和
"strings" 的列表(只要它们存在于 C 中),argv
.
例如,您可以使用
#include "stdio.h"
int main(int argc, char* argv[])
{
printf("Number: %d\n", argc);
printf("0: %s\n", argv[0]);
if (1<argc)
{
printf("1: %s\n", argv[1]);
}
}
开始讨论参数。
请注意,这只是一个使用命令行参数的基本示例,有意不执行任何操作。这符合 Whosebug 接受的政策,即提供作业帮助,而不去解决它们。
我必须做一个作业,我必须编写一个 C 程序,它从控制台获取输入文件名作为命令行参数。
它应该将数据从 input.txt 文件(输入文件包含 bmp 文件的信息 - 颜色等)移动到生成的 output.png 文件。 20 20 个参数代表 output.png 图片的宽度和高度。
因此控制台请求(在 Linux 上测试)将如下所示:
./main input.txt output.bmp 20 20
我知道这段代码读取 input.txt 文件并将其显示在屏幕上。
FILE *input;
int ch;
input = fopen("input.txt","r");
ch = fgetc(input);
while(!feof(input)) {
putchar(ch);
ch = fgetc(input);
}
fclose(input);
这会(例如)将其写入 output.png 文件。
FILE *output;
int i;
output = fopen("ass2_everyinformationin.bmp", "wb+");
for( i = 0; i < 55; i++)
{
fputc(rectangle_bmp[i], output);
}
fclose(output);
但此代码仅在我直接在代码中硬编码名称时有效,而不是使用命令行参数。
我不知道如何实现它,我也没有在互联网上找到任何有用的信息,也许有人可以帮助我。
问候
标准 main() 的完整原型是
int main(int argc, char* argv[]);
你得到一个包含参数数量的整数,argc
和
"strings" 的列表(只要它们存在于 C 中),argv
.
例如,您可以使用
#include "stdio.h"
int main(int argc, char* argv[])
{
printf("Number: %d\n", argc);
printf("0: %s\n", argv[0]);
if (1<argc)
{
printf("1: %s\n", argv[1]);
}
}
开始讨论参数。
请注意,这只是一个使用命令行参数的基本示例,有意不执行任何操作。这符合 Whosebug 接受的政策,即提供作业帮助,而不去解决它们。