私はC言語のコースから始めましたが、コマンドライン引数の問題にぶつかっています。代入はこれです(これ以上ありますが、これは最初のコマンドライン引数の部分です)。
- プログラムでは、1つのコマンドライン引数、負でない整数を受け入れる必要があります。
- プログラムがコマンドライン引数なしで実行される場合、または複数のコマンドライン引数を指定して実行される場合、プログラムは選択したエラーメッセージを出力して1を返します。
- ユーザーはコマンドライン引数を指定しますが、負でない整数(たとえば1)になります。それが実際に数値であることを確認する必要はありません。コマンドライン引数の条件pset2 caesar
は、だから私はこのコードを思い付いた:
#include <stdio.h>
#include <cs50.h>
#include <string.h>
int main(int key, string plain[]) {
if (key < 0 || plain[key] > 1)
{
printf("error\n");
return 1;
}
else
等...コードが続きます。
私はいくつかのことを試しましたが、私は壁にぶち当たっています。コンパイラは、私が思いついたif条件を受け入れたくありません。ポインタと整数の比較にエラーがあります。割り当てのリストの太字の条件を指します。だから、私はコマンドライン引数のargvの部分は、ユーザーが入れた文字列の配列だと思った。私の考えは、ユーザーが複数の文字列を与えるとき、エラーメッセージを与える必要がありますコンパイラに伝えることだったので、 "プレーン[キー]> 1)"。あるいは、ここでコマンドライン引数を完全に理解していると思いますか?ありがとう。
'plain [key]'は 'string'で' int'ではありません –
'plain [key]'はおそらく境界外です。どのパラメータが 'main'に渡されるかを調べるべきです。 – Gerhardh
Cに 'string'型がありません。それは何ですか? 'main'のシグネチャは' int main(int、int * []) 'であるか、最後のaprameterは' int ** 'と同じです。 – Olaf