C vs scanf中的变量赋值

时间:2016-06-17 14:06:04

标签: c scanf

我是C的新手,我在理解这个scanf()行时遇到了一个小问题:

printf("Enter a message to add to message queue : ");    
scanf("%[^\n]",sbuf.mtext);

如果从命令行获取值,如何编写此语句? 我想我必须将变量声明为字符串?

1 个答案:

答案 0 :(得分:0)

如果您从命令行获取任何值或数据,则command line arguments (点击打开链接)非常有用

要使用命令行参数,您必须更改main()函数定义,让我们说int main()

int main ( int argc, char *argv[] )

此处int argc 参数计数器 。它是一个整数,存储从命令行传递的参数数量(+程序名称)

char* argv[] 参数向量 ,用于保存您作为字符串发送到main函数的数据

  

如果我从中获取值,如何编写此语句   命令行?

由于您在命令行输入的任何值都存储在char *argv[]中,因此您可以通过这种方式访问​​相应的字符串

 printf("%s",argv[command_no])

示例: (打印出argc的值以及*argv[]中存储的所有字符串)

#include <stdio.h>

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

命令行参数:

 these are command line arguments :)

<强>输出:

6
E:\C-Programming\Workspace\Interview\Debug\Interview.exe
these
are
command
line
arguments
:)
  

注意:第一个参数或argv[0]始终是程序的名称