2

C ++でプログラミングしていて、そのコードに次のエラーがあります:

#include <stdio.h>

int main(int argc, char* argv[])
{ int x;
    printf("%d","Please enter a number\n");
    scanf(%d,&x);
    printf("%d","You entered 56\n");

}

これはエラーです: エラー 1 エラー C2065: 'd' : 宣言されていない識別子 9 1

2   IntelliSense: expected an expression    9   8   

ありがとう、ペレグ

4

4 に答える 4

1
scanf(%d,&x);  
------^^---- 

する必要がありますscanf("%d",&x);

于 2013-03-27T13:16:45.443 に答える
1

の最初の引数scanfは、ヌルで終わる文字列にする必要があります。

scanf("%d",&x);

で行ったのと同じようにprintf

于 2013-03-27T13:14:38.900 に答える
0

他の人がすでに述べたように、 scanf にはフォーマット文字列が必要なので、書く必要があります

scanf("%d", &x);

また、printf を使用しても、必要な結果が得られません。printf に渡される最初の文字列は、出力フォーマット文字列です。"%d"次の引数が整数であることを意味します。次の引数は文字列のアドレスです。あなたが本当に書きたかったのは、次の 3 行のいずれかです。

printf("%s", "Please enter a number\n");
printf("Please enter a number\n");
puts("Please enter a number");

あなたの場合、最後の行が最適です。2 行目も問題ありませんが、文字列に のような書式設定文字が含まれていないため%dです。

于 2013-03-27T13:27:44.570 に答える
0

scanf(%d,&x);問題は、ステートメントの最初の引数にあります。この引数は、ヌルで終了する文字列である必要があります。あなたのコードは以下に書き直されます:

#include <stdio.h>

int main(int argc, char* argv[])
{ 
    int x;
    printf("Please enter a number %d\n");
    scanf("%d",&x);
    printf("You entered %d\n", x);

}
于 2013-03-27T13:27:57.490 に答える