簡體   English   中英

C-main()命令行參數

[英]C - main() command line parameters

這是一個非常基本的問題,但我在任何地方都找不到明確的答案。 就它們所指的方面,我了解main的參數:

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

其中,argc表示命令行參數的數量,argv表示保存每個字符串的數組。 我從.c文件創建了源代碼的exe文件,但沒有使用命令提示符的經驗,並且不了解命令行參數的語法。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
    FILE *infile, *outfile;
    int iochar;

    if(argc != 3){
        printf("Usage: filename infile outfile\n");
        exit(1);
    }

    if((infile = fopen(argv[1], "r")) == NULL){
        printf("Can't open input file.\n");
        exit(1);
    }

    if((outfile = fopen(argv[2], "w")) == NULL){
        printf("Can't open output file.\n");
        exit(1);
    }

    while((iochar = getc(infile))!=EOF){
        putc(iochar, outfile);
    }

    fclose(infile);
    fclose(outfile);

    printf("You've reached the end of the program.\n"); 

    return;
}

前面的代碼應使用3個參數,並將第二個參數的內容復制到第三個參數的位置。 為此我該怎么辦?

您可以在VS項目的“調試”屬性中設置命令行參數。

不了解命令行參數的語法。

命令行參數語法的詳細信息取決於正在解釋它們的程序……VS,Windows快捷方式,Windows cmd,bash等……但通常,它只是由空格分隔的項目列表。 如果項目本身包含空格,引號或其他特殊字符,則需要注意所用解釋器的規則。

命令行參數的語義由您的程序定義...在這種情況下,第一個參數是輸入文件的名稱,第二個參數是輸出文件的名稱。

printf("Usage: filename infile outfile\n");

這不是一個很好的用法消息……“文件名”應該是您的程序的名稱,通常是argv [0]的值。 從而:

printf("Usage: %s infile outfile\n", argv[0]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM