2

最初の引数の最初の文字 == "-" の場合は、if ステートメントを入力します。私が得るエラーは、「 'strcmp'の引数1を渡すと、キャストなしで整数からポインターが作成されます」というものです.fgetcでこれを試してみましたが、少し違った書き方をしましたが、それでもこのエラーが発生します. キャストすると、コアダンプが発生します。引数にダッシュが含まれている場合、同じ引数内に数字が続くため、argv[1] を単一の文字として見ることはできません。条件が次のように単純である場合:if (strcmp(argv[1], "-")==0)

関数

int main (int argc, const char *argv[]){
    const char *test = argv[1];
    if (strcmp(test[0],"-")==0)
        {
          printf("saw there was a dash");
        }
    return 0;}

ご協力ありがとうございました

4

1 に答える 1

7

strcmp()文字列、つまり null で終了charする配列を比較することです。しかし、ここでは 2 つを比較していますchar。これは次のようになります。

if (test[0] == '-')

の一重引用符に注意してください。'-'これはcharリテラルです。

于 2014-02-24T02:54:42.850 に答える