コード例:
char cnumb1[2];
NSLog(@"Do you have an account already?(1 for Yes, 0 for no)");
int c;
//Flushes input
while((c = getchar()) != '\n' && c != EOF);
fgets(cnumb1, sizeof cnumb1, stdin);
size_t length = strlen(cnumb1);
if (cnumb1 [length-1] == '\n'){ // In case that the input string has 1 character plus '\n'
cnumb1 [length-1] = '\0';} // Plus '\0', the '\n' isn't added and the if condition is false.
NSString* string = [NSString stringWithUTF8String: cnumb1];
NSLog(@"string:%@", string);
入力 "0" (編集: 何らかの理由で、Enter キーを 2 回押す必要があります) を使用すると、出力 "string:" が得られます。私が知る限り、標準入力が正しく設定されていません。また、フラッシュ行なしで開始しましたが、後で fgets が増えるため、多くの問題が発生し、stdin は初期入力のみになるため、それらを追加しました。
入力が標準入力に設定されていないのはなぜですか? それともまったく別の問題ですか?