1

以下のコードを参照してください

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

次のようにコンパイルして実行します

gcc test.c
./a.out 1 * 2

そして今、そのo / pは傷ついています..!

o / pは:

 1 
 a.out 
 Desktop 
 Documents 
 Downloads 
 ipmsg.log 
 linux-fusion-3.2.6 
 Music 
 Pictures 
 Public 
 Templates 
 test.c 
4

2 に答える 2

5

アスタリスクを一重引用符で囲みます。

./a.out 1 '*' 2

これにより、シェルが特殊文字として解釈するのを防ぐことができます。

于 2012-12-21T11:12:41.420 に答える
4

次を使用してテストを呼び出すことができます

./a.out 1 \* 2

*を引数として渡したい場合。'*'一重引用符(Esaが提案)または二重引用符を使用することもできます"*"

現在、ループは最後の引数を無視していることにも注意してください。i<argcこれが意図的でない場合は、終了条件として使用してください。

于 2012-12-21T11:13:27.490 に答える