このポストに添付されているコードは大きなプログラムの一部ですが、構造化変数 'title'と 'author'の入力を受けているときに問題が発生しています。 プログラムがループして次の行に移動したようです。また、文字列指定子の中で[^ \ n]の前に[^ \ n]を使用していますが、scanfを使用して文字列を入力として使用するのと同じです。いくつかの記事を読むが、問題を理解することはできない。 ちょうどCで始まる、どんな助けもありがとう!構造入力にscanfを使用する
struct books{
char title[30];
char author[30];
char subject[20];
int quantity;
int book_id;
char *category;
int count;
float price;
};
struct books book;
book.book_id=id;
printf("\n\n\t\tBook Name:\n\t\t");
scanf(" %s",book.title);
printf("\n\n\t\tAuthor:\n\t\t");
scanf(" %[^\n]s",book.author);
printf("\n\n\t\tQuantity:\n\t\t");
scanf("%d",&book.quantity);
printf("\n\n\t\tPrice:\n\t\t");
scanf("%f",&book.price);
これは%sより前の領域かもしれません – Luci
フォーマット指定子に '[^ \ n]ではなく' [^ \ n] 'が含まれていますか?そこに余分なスペースも必要ありません。 '[^ \ n]'は、文字列区切り文字としての空白ではなく、特に\ nを指定します。あなたがそれを試してみたら、それはあなたが投稿しておくべきコードです。入力にスペースが含まれていない場合、またはそれに問題がある場合は機能しますか? – Clifford
[mcve]してください!ところで、 '[^ \ n]の後の' s'は間違っていて、削除する必要があります。これは何の効果もありませんが、完全に余分です。 –