zoukankan      html  css  js  c++  java
  • 【413】C 语言 Command line

    Command-Line Arguments

    All the executable programs above have a main(void) program

    • more generally, executables take arguments on the command line
    • these enter the program via parameters
      切换行号显示
         1  int main(int argc, char *argv[])
      

    For example:

    prompt$ ./a.out -pre 3

    means that:

    • argc refers to the number of arguments, including the program name

      • argc = 3

    • argv[] allows access to arguments represented as strings

      • argv[0] is a pointer to the string "./a.out"

      • argv[1] is a pointer to the string "-pre"

      • argv[2] is a pointer to the string "3"

     

    Command-line argument processing example 1

    Write a program that:

    • takes an optional numerical command-line argument 1, 2, 3 or 4
    • if the argument is not one of these characters (!), a usage message is printed
      切换行号显示
       // commarg.c
       #include <stdio.h>
       #include <stdlib.h>
       int main(int argc, char *argv[]) {
           if (argc == 1 ||
              (argc == 2 && atoi(argv[1]) >= 1 && atoi(argv[1]) <= 4)) {
               // we can do something here
           } else {
               printf("Usage: %s [1|2|3|4]
      ", argv[0]);
           }
           return EXIT_SUCCESS;
       }
      
    • notice that atoi() had to be called to convert the character to a number

    • compiling and executing the program:
       prompt$ dcc commarg.c
       prompt$ ./a.out
       prompt$ ./a.out 1
       prompt$ ./a.out 2
       prompt$ ./a.out 3
       prompt$ ./a.out 4
       prompt$ ./a.out 5
       Usage: ./a.out [1|2|3|4]

     

    Command-line argument processing example 2

    Write a program that:

    • takes an optional command-line switch -reverse

    • if the switch is not correct, a usage message is printed
      切换行号显示
       // commargrev.c
       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>
       int main(int argc, char *argv[]) {
           if (argc == 1 ||
              (argc == 2 && !strcmp(argv[1], "-reverse"))) {
               // NOTE: strcmp returns 0 if matches.
               // we could do something here
           } else {
               printf("Usage: %s [-reverse]
      ", argv[0]);
           }
           return EXIT_SUCCESS;
       }
      
       prompt$ ./a.out
       prompt$ ./a.out -reverse
       prompt$ ./a.out rubbish
       Usage: ./a.out [-reverse]

     

    Makefile

  • 相关阅读:
    tfidf 问题
    Win32汇编窗口程序设计[03]第一个窗口程序
    Win32汇编窗口程序设计[01]开发环境的搭建
    Win32汇编窗口程序设计[02]RadASM简介
    寄存器引用结构体变量
    始终居中的弹出层
    JSonJavaScript
    json
    <收录>jqueryuidatapicker生成的页面html
    网站数据抓取
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/11074529.html
Copyright © 2011-2022 走看看