C vs scanf中的可变分配

  • 本文关键字:分配 vs scanf c scanf
  • 更新时间 :
  • 英文 :


我是C的新手,我在理解此scanf()行时有一个小问题:

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

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

如果您从命令行获得任何值或数据,则命令行参数(单击"打开链接)非常有用


对于使用命令行参数,您必须从中更改main()函数定义,例如,int main()

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

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

传递的参数数量

char* argv[]参数vector ,它将您发送到主函数的数据以字符串


如果我从 命令行?

由于您在命令行中输入的任何值都存储在char *argv[]中,因此您可以以此方式访问适当的字符串

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

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

#include <stdio.h>
int main(int argc, char* argv[])
{
    printf("%dn",argc);
    for(int i=0;i<argc;i++)
    {
        printf("%sn",argv[i]);
    }
    return 0;
}

命令行参数:

 these are command line arguments :)

输出:

6
E:C-ProgrammingWorkspaceInterviewDebugInterview.exe
these
are
command
line
arguments
:)

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

最新更新