-4

私は以下に書かれたコードを試しましたが、うまくいきませんでした。理由がわかりますか?構造体ポインタを介して構造体メンバをスキャンすることは可能ですか?

#include<stdio.h>
#include<conio.h>
struct book
{
  int isdn;
  float price;
 };
 struct book b,*ptr;
 void main()
 {
   clrscr();
   b.isdn=10;
   b.price=150.75;
   printf("\n%d %f",b.isdn,b.price);
   ptr=&b;
   printf("\n%d %f",ptr->isdn,ptr->price);
   scanf("%d %f",&ptr->isdn,&ptr->price); //this statement do not work,why?
   printf("\n%d %f",ptr->isdn,ptr->price);
   getch();
 }
4

1 に答える 1

0

そのコードは機能し、scanf はそのように機能します。いくつか参考にさせていただきます

どのように機能するかについてのドキュメントを読みましたかscanf()

フォーマット文字列で指定されているとおりにデータを渡す必要があります。だからあなたの場合:

scanf("%d %f",&ptr->isdn,&ptr->price); 

整数、スペース、浮動小数点数を渡す必要があります。次に例を示します。

5 2.3

次にptr->isdn、5 にptr->priceなり、2.3 になります。それが起こらない場合は、おそらくこれがすべてのコードではないか、コピーしたものを見逃しているのでしょうか?

于 2012-12-25T21:22:11.810 に答える