从终端读取 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 接受的政策,即提供作业帮助,而不去解决它们。