从终端读取input.txt文件和output.bmp文件(C编程)

从终端读取input.txt文件和output.bmp文件(C编程),c,terminal,console,stdin,fopen,C,Terminal,Console,Stdin,Fopen,我必须做一个作业,我必须编写一个C程序,它从控制台获取输入文件名作为命令行参数。 它应该将数据从input.txt文件(输入文件包含bmp文件的信息-颜色等)移动到生成的output.png文件。20个参数代表output.png图像的宽度和高度 例如,控制台请求(在Linux上测试)将如下所示: ./main input.txt output.bmp 20 20 我知道这段代码读取input.txt文件并将其显示在屏幕上 FILE *input; int ch; input = fopen(

我必须做一个作业,我必须编写一个C程序,它从控制台获取输入文件名作为命令行参数。
它应该将数据从input.txt文件(输入文件包含bmp文件的信息-颜色等)移动到生成的output.png文件。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);
文件*输出;
int i;
输出=fopen(“ass2_everyinformationin.bmp”、“wb+”);
对于(i=0;i<55;i++)
{
fputc(矩形_bmp[i],输出);
}
fclose(输出);
但是,只有在我直接在代码中硬编码名称,而不是使用命令行参数时,此代码才有效。
我没有任何线索,如何实现这一点,我也没有在互联网上找到任何有用的信息,也许有人可以帮助我


问候语

标准main()的完整原型是

您将得到一个包含参数数量的int,
argc

“字符串”列表(只要它们在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]);
    }
}
#包括“stdio.h”
int main(int argc,char*argv[])
{
printf(“编号:%d\n”,argc);
printf(“0:%s\n”,argv[0]);

如果(1标准main()的完整原型为

您将得到一个包含参数数量的int,
argc

“字符串”列表(只要它们在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]);
    }
}
#包括“stdio.h”
int main(int argc,char*argv[])
{
printf(“编号:%d\n”,argc);
printf(“0:%s\n”,argv[0]);

如果(1)您知道main()的参数吗?即argc和argv。@Yunnosch不,我不知道。。我需要它们来获得想要的结果吗?如果不使用它们,使用起来会很困难,很容易。一个告诉您程序得到了多少个参数,另一个表示一个数组,将它们作为“字符串”提供。找到一个不是以
int main()
int main(void)
开头的教程。非常感谢你的提示!你知道一个好的(简单的)教程吗?你知道main()的参数吗?即argc和argv。@Yunnosch不,我不是。。我需要它们来获得想要的结果吗?不使用它们会很困难,使用起来很简单。一个告诉你程序得到了多少个参数,另一个表示一个数组,将它们作为“字符串”提供。找到一个不是以
int main()
int main(void)开头的教程
。非常感谢你的提示!你有机会知道一本好的(简单的)旅游吗?