0
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Incorrect command line arguments.\n");
return 0;
}
for (int i = 0; i < strlen(argv[1]);i++){
printf("%c",argv[1][i]);
}
printf("\n");
}
しかし、これをコンパイルした後、コマンドライン引数として括弧を含む文字列を入力使用して、私の出力です:エラー私は、この単純なコードを持って
は./a.out 123
123
./a.out (1+2+3)
bash: syntax error near unexpected token `1+2+3'
これが起こっている理由は何で、どのように私がすることができます修理する?それはこれを台無しにしているかっこのように思えます。ありがとう
あなたのプログラムは呼び出されていません。 Bashは、かっこのためにサブプロセスを実行しようとします。あなたがそれを渡したい場合は、引用符を使用してください。 –
そのようなループで 'strlen'を何度も計算しないでください。 – aschepler
この行: 'return 0;'はエラーが発生したときの戻り値が非常に悪いです。 'main()'の戻り値0は成功を示しているからです。提案: 'return 1;'または 'exit(1);'または 'exit(EXIT_FAILURE);のほうが良い。 – user3629249