fgets()
から入力を読み込もうとしていますが、その機能はキーボードからの出力を待っていません。 fgets
を使用するように言われたので、scanf
はオプションではありません。 fgets
ファンクションは、何らかの理由でmain
ファンクションで使用された場合には、が機能しますが、追加機能はありません。fgetsがstdinを待たずに
ここでプログラムがfgets()
をスキップしていない入力を待ち、以降、私は名前の文字列をしたいいくつかの空の文字列を追加するコード
char name[21]={0x0}; //tried everything; not assigning value and NULL&\0
printf("\nName: ");
//fseek(stdin,0,SEEK_END);
//rewind(stdin);
//fflush(stdin); //these don't help
printf(stdin); //for testing purposes, probably pointless
fgets(nimi, 21, stdin);
です。しかし、エラーチェックがあるので、name
は値NULLを取得しません。私はこの問題を抱えている人がかなりいることを知っていますが、私は助けを見つけることはできませんでした。ほとんどの人はscanf
やその他の機能を使用するよう指示します。レコードのためにscanf()
はここで期待通りに動作します。構文はmain()
で動作するので正しいはずです。私はおそらくstdin
が実際に働く方法を知らないので、タイトルがばかだと謝ります。
このコードは(else節た場合)、ポインタのためのmallocの後に直接である
_テスト目的のために、おそらく無意味です_....いいえ、それは間違っています.... – LPs
fgetsを使用する前にstdinをクリアする必要があります。 –
このコードの前に 'scanf()'を使っていますか? (printf(stdin);)に加えて、(問題があると思われる)問題があります。 – chux