2
Dで入力を取得しようとしていて、入力が正しいことを確認すると、無限ループまたは入力バッファ溢れる 入力を求めるときにDの無限ループまたはオーバーフローバッファ
import std.stdio;
import std.string;
void main(){
char[] data;
writeln("Hey Player ",1,". Would you like to make a guess?\n Type 'y' to guess or 'n' to continue ");
write("> ");
readf(" %s", &data);
char guessY = data[0];
while(guessY != 'y' && guessY != 'Y' && guessY != 'n' && guessY != 'N')
{
writeln(guessY, " ",data);
writeln("");
writeln("Hey Player ",1," enter the correct input please.\n Type 'y' to guess or 'n' to continue ");
write("> ");
readf(" %s", &data);
guessY = data[0];
//fflush(&guessY);
}
writeln(guessY, " ",data);
}
そして、私がしようとすると、文字列として入力を読めば、私は試してみて、ちょうど単一の文字を受け取る場合ならば、現在、私は、無限ループをCtrl + Dキーで入力が供給を停止し、それする必要があります複数の文字が入力されたときは、次に入力を求めるときに自動的に使用されます。私はこの小さな量のコードをより大きな関数から取り除きました。なぜなら、これが問題を分離していたからです。
問題を'%c'と誰かが' abc'を入力すると、次の2つの入力は自動的にbとcを使用します '\ n'はうまくいきました。 –