0

コード例:

    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 は初期入力のみになるため、それらを追加しました。

入力が標準入力に設定されていないのはなぜですか? それともまったく別の問題ですか?

4

1 に答える 1