English 中文(简体)
C - 指挥线
  • 时间:2024-11-03

C - Command Line Arguments


Previous Page Next Page  

在执行时,有可能将一些价值观从指挥线转移到你的C方案。 这些价值观被称为直线论点,对于你的方案来说,这些价值多次很重要,特别是当你想从外部控制你的方案,而不是在守则中硬化这些价值观时。

argc系指通过的论点数目时,指挥线论点采用主要()职能论据处理,argv[]是每一论点提交方案的一个要点。 下面是一个简单的例子,可以检查是否有任何指控来自指挥线,并据此采取行动。


#include <stdio.h>

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

   if( argc == 2 ) {
      printf("The argument suppped is %s
", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments suppped.
");
   }
   else {
      printf("One argument expected.
");
   }
}

当上述法典以单一论点汇编和执行时,它得出以下结果。


$./a.out testing
The argument suppped is testing

当上述法典以两个论点汇编和执行时,会产生以下结果。


$./a.out testing1 testing2
Too many arguments suppped.

如果上述法典未经任何理由加以编纂和执行,则会产生以下结果。


$./a.out
One argument expected

请注意argv[0]。 持有节目名称和argvl 这是提供的第一个指挥线论据,*argv[n]是最后的论点。 如果没有提供论据,则会增加一个论点,如果你通过一个论点,那么argc则在2时提出。

你通过空间分离的所有指挥线论点,但如果争辩本身有空间,那么你就可以通过将这种论点放在“”或单一引语中。 让我们再次树立上述榜样,在这里,我们将印刷节目名称,我们也通过在双面引用中打上指挥线的论据——


#include <stdio.h>

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

   printf("Program name %s
", argv[0]);
 
   if( argc == 2 ) {
      printf("The argument suppped is %s
", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments suppped.
");
   }
   else {
      printf("One argument expected.
");
   }
}

如果上述法典是以空间分开但以双重报价的单一论点汇编和执行,则会产生以下结果。


$./a.out "testing1 testing2"

Program name ./a.out
The argument suppped is testing1 testing2
Advertisements