C程序从命令行读取输入

C程序从命令行读取输入,c,C,我想让这个程序从命令行读取指令。这是一个八进制->二进制和二进制->八进制的数字转换器。我不能在运行转换成什么之前告诉它吗?例如./conv八进制二进制11将产生八进制3。我以前在使用./script input-output的地方运行过linux程序 #include <stdio.h> #include <math.h> int binary_octal(int n); int octal_binary(int n); int main() { int n;

我想让这个程序从命令行读取指令。这是一个八进制->二进制和二进制->八进制的数字转换器。我不能在运行转换成什么之前告诉它吗?例如./conv八进制二进制11将产生八进制3。我以前在使用./script input-output的地方运行过linux程序

#include <stdio.h>
#include <math.h>
int binary_octal(int n);
int octal_binary(int n);
int main()
{
    int n;
    char c;
    printf("Instructions:\n");
    printf("Enter alphabet 'o' to convert binary to octal.\n");
    printf("2. Enter alphabet 'b' to convert octal to binary.\n");
    scanf("%c",&c);
    if ( c=='o' || c=='O')
    {
        printf("Enter a binary number: ");
        scanf("%d",&n);
        printf("%d in binary = %d in octal", n, binary_octal(n));
    }
    if ( c=='b' || c=='B')
    {
        printf("Enter a octal number: ");
        scanf("%d",&n);
        printf("%d in octal = %d in binary",n, octal_binary(n));
    }
    return 0;
}
int binary_octal(int n)  /* Function to convert binary to octal. */
{
    int octal=0, decimal=0, i=0;
    while(n!=0)
    {
        decimal+=(n%10)*pow(2,i);
        ++i;
        n/=10;
    }

/*At this point, the decimal variable contains corresponding decimal value of binary number. */

    i=1;
    while (decimal!=0)
    {
        octal+=(decimal%8)*i;
        decimal/=8;
        i*=10;
    }
    return octal;
}
int octal_binary(int n)  /* Function to convert octal to binary.*/
{
    int decimal=0, binary=0, i=0;
    while (n!=0)
    {
        decimal+=(n%10)*pow(8,i);
        ++i;
        n/=10;
    }
/* At this point, the decimal variable contains corresponding decimal value of that octal number. */
    i=1;
    while(decimal!=0)
    {
        binary+=(decimal%2)*i;
        decimal/=2;
        i*=10;
    }
    return binary;
}
#包括
#包括
整数二进制八进制(整数n);
int八进制二进制(int n);
int main()
{
int n;
字符c;
printf(“说明:\n”);
printf(“输入字母“o”将二进制转换为八进制。\n”);
printf(“2.输入字母“b”将八进制转换为二进制。\n”);
scanf(“%c”、&c);
如果(c=='o'| | c=='o')
{
printf(“输入二进制数:”);
scanf(“%d”和“&n”);
printf(“%d二进制=%d八进制”,n,二进制_八进制(n));
}
如果(c=='b'| c=='b')
{
printf(“输入八进制数:”);
scanf(“%d”和“&n”);
printf(“%d在八进制中=%d在二进制中”,n,八进制_二进制(n));
}
返回0;
}
int binary_octall(int n)/*函数,用于将二进制转换为八进制*/
{
int八进制=0,十进制=0,i=0;
而(n!=0)
{
小数+=(n%10)*功率(2,i);
++一,;
n/=10;
}
/*此时,decimal变量包含二进制数对应的十进制值*/
i=1;
while(十进制数!=0)
{
八进制+=(十进制%8)*i;
十进制/=8;
i*=10;
}
返回八进制;
}
int octall_binary(int n)/*函数,用于将八进制转换为二进制*/
{
整数十进制=0,二进制=0,i=0;
而(n!=0)
{
小数+=(n%10)*功率(8,i);
++一,;
n/=10;
}
/*此时,十进制变量包含该八进制数的相应十进制值*/
i=1;
while(十进制数!=0)
{
二进制+=(十进制%2)*i;
小数/=2;
i*=10;
}
返回二进制;
}

命令行选项通过
argc
argv
传递到
main

int main(int argc, char** argv)
{
    for(int i=0; i<argc; ++i)
    {
        printf("Option %d is %s\n", i, argv[i]);
    }
}
int main(int argc,char**argv)
{

对于(int i=0;i命令行选项通过
argc
argv
传递到
main

int main(int argc, char** argv)
{
    for(int i=0; i<argc; ++i)
    {
        printf("Option %d is %s\n", i, argv[i]);
    }
}
int main(int argc,char**argv)
{

对于(int i=0;i命令行选项通过
argc
argv
传递到
main

int main(int argc, char** argv)
{
    for(int i=0; i<argc; ++i)
    {
        printf("Option %d is %s\n", i, argv[i]);
    }
}
int main(int argc,char**argv)
{

对于(int i=0;i命令行选项通过
argc
argv
传递到
main

int main(int argc, char** argv)
{
    for(int i=0; i<argc; ++i)
    {
        printf("Option %d is %s\n", i, argv[i]);
    }
}
int main(int argc,char**argv)
{

for(int i=0;i
argv[0]
通常是在命令行上键入的程序名。
argv[0]
通常是在命令行上键入的程序名。
argv[0]
通常是在命令行上键入的程序名。
argv[0]
通常是在命令行上键入的程序名。