2

定義された出力を提供するprintf()関数内でscanf()関数を使用できますか?はいの場合は、以下の簡単なコードの出力について説明してください。

#include <stdio.h>
#include <conio.h>
int main()
{
  int a;
  printf("%d",scanf("%d",&a));
  return 0;
}
4

5 に答える 5

6

ではない正確に。scanf解析されたアイテムの数を返しますが、実行できることは次のとおりです。

printf("%d", (scanf("%d", &a), a));

コンマ演算子を使用しての結果を破棄しscanf、代わりにの値を使用します。

于 2013-03-18T17:08:27.103 に答える
2

printfscanfは単なる機能です。上記のように、ある関数の出力を別の関数のパラメーターとして使用できます。

@MichaelTがコメントで述べているように、の戻り値はキーボードから読み取られた値でscanfはありません。マニュアルページを確認すると、次のように表示されます。

これらの関数は、正常に一致および割り当てられた入力項目の数を返します。これは、提供された数より少ない場合もあれば、早期の一致が失敗した場合はゼロになる場合もあります。

つまり、この例では、有効な整数が入力された場合1、または0有効な整数が入力されていない場合に、を返します。

于 2013-03-18T17:10:14.343 に答える
1

scanf正常に行われた変換の数を返すように、サンプルプログラムは、提供された入力に応じて、、a、またはのいずれかを出力します(入力10開始が整数に変換可能な場合、非整数入力の場合、入力エラーの場合) )。-110-1

于 2013-03-18T17:10:52.380 に答える
1

わかりやすい

C では、printf() は出力に正常に書き込まれた文字数を返し、scanf() は正常に読み取られた項目の数を返します。

たとえば、以下のプログラムは akp 3 を出力します。

int main()
{
  printf(" %d", printf("%s", "akp"));
  getchar();
}  

ユーザーが入力した文字列に関係なく、以下のプログラムは 1 を出力します。

int main()
{
  char a[50];  
  printf(" %d", scanf("%s", a));
  getchar();
}  
于 2013-10-05T22:02:01.227 に答える