0

「キャストなしの整数からポインターを作成する」というエラーが発生する他の投稿を読みましたが、それが何を意味するのか正確にはわかりません。キャストしない場合、関数getsはデフォルトで int 変数をポインターにするということですか (キャストの意味は) ですか?inputgets ((int) input

int directions() 
{   
    int input;

    printf("Type '1', '2', etc to see a problem or type '(add an 'all' option to see a     list of all the problems)\n");
    gets( input);

    switch ( input) {
        case 1: euler1();
        case 2: euler2();
    }

    return input;
}

int main()
{   
    printf("Welcome to Project Euler's Problems in C!\n");
    directions();

    return 0;
}
4

3 に答える 3

1

の最初の引数gets()char*、バッファへのポインタです。を返しませんint。に関するいくつかのドキュメントをgets見ると、それがどのように適切に使用されているかがわかります。

文字列を読み取ったら、 を使用atoiして ASCII から整数に変換する必要があります。

必要な入力の入力ストリームをスキャンするようなものを使用する方がよいことに注意してください。fscanf(stdin, "%d", &input);

于 2012-09-22T01:00:31.393 に答える
-1

gets()int を取得しません。を使用しatoi()て変換します。

char *s;
s = gets(buff)
input = atoi(s);
于 2012-09-22T01:08:41.040 に答える