2017-04-02 9 views
2

先週Xcode 8.3にアップデートされた後、C/C++プログラムで改行なしでprintfの出力が画面に表示されなくなりました。したがって、私は、ユーザが番号を入力して、入力プロンプトに従って同じ行にその番号を入力させるように促すことはできません。Xcode 8.3のアップデートでは、C/C++プログラミングprintfは改行なしの出力を出力しません。

出力バッファ[fflush(stdout)又はcout << endl]を洗い流すことも、NULL [setbuf(stdout, NULL)]アドレスへの出力バッファを設定し、この問題は、むしろのXcode 8.3一見壊れたことについて具体的に質問もされていません。コメントアウトscanf

、以下のプログラムの出力は次のとおりです。場所でのscanfで

Enter a value for x: Value of x is: 0 

、最初のprintfの出力が現れることはありません。値を入力してEnterキーを押すと、、次にだけが表示されます。出力は次のとおりです。

3 
Enter a value for x: Value of x is: 3 

完全なテストプログラムは、ここにある:

#include <iostream> 
using namespace std; 

int main() { 
    int x=0; 
    printf("Enter a value for x: "); 
    //scanf("%d", &x); 

    printf("Value of x is: %d\n", x); 
    return 0; 
} 

私の仕事の周りに、バックのXcode 8.2.1に戻すことでしたdeveloper.apple.com/xcode/downloads/からダウンロード

+0

私はできるだけ多くをバッファリングするために、標準的な動作は、(定義された標準が、一般的ではない)改行が書き込まれるまでフラッシュするのではないことをかなり確信しています内容は可能です(明示的にフラッシュされない限り) –

+0

'stdout'をフラッシュすると動作しますか?私は、XCodeが改行が追加されるまで(フラッシングに関係なく)印刷しないC++の 'std :: cout'と本当によく似た質問があるので、私は尋ねています:http://stackoverflow.com/questions/43158839/ c-not-showing-cout-in-xcode-console-but-runs-perfectly-in-terminal改行を追加し、問題がまだ発生している場合は、教えてください。編集:また、質問に示唆するように 'stderr'に印刷しようとしてください@NobodyNadaにリンクを投稿しました。 – datell

+2

これはCコードではありませんが、明らかにC++です。正しいタグを使用してテキストを編集してください! – Olaf

答えて

3

8.3。2は、このおそらく最後の夜とアドレス発表されました:

enter image description here

+0

確認済み、8.3.2の私の最後に固定されています。 –

2

C言語では、入力関数がコールされる前に改行が出力されたかどうかにかかわらず、scanf()などの関数が呼び出されたときに、標準出力としてフラッシュされます。これにより、入力操作が行われる前にすべての適切な出力が確実に表示されます。したがって、Xcodeで何か問題が発生している可能性があります。現在のところ、問題の正確な内容はわかりませんが、(一時的な)回避策は、アプリケーションをコマンドラインで実行することです。これは私のプロジェクトに役立っています。また、この問題はコンパイラやその他のものではなく、Xcodeの出力ウィンドウにあることがわかります。

tellのコメントに対する応答として、no、flush stdoutはXcode内の問題を修正しません。これは、Xcodeインターフェイス自体に問題があることをさらに強く示唆しています。コマンドラインからアプリケーションを実行すると、fflush()の呼び出しが期待通りに機能します。

また、stderrへの印刷もXcode内と違いはありません。基本的に、stdout でなければなりません。この場合、OPがscanf()を呼び出しているため、stderrや他のギミックには魅力を感じません。それはコマンドラインから完全に動作します... Xcodeの出力ウィンドウにはありません。

ではなく、と重複しています。これは、Cの入力と出力がどのように動作するかについての誤解や、Xcodeの最新のアップデートが何かを壊したという事実とは関係ありません。

編集:

ありがとう、joe_04_04。更新プログラムは確かに問題を修正したようだ。

+0

ありがとうございました。私はあなたに同意します:これは二重ではなく、本当にXcodeの奇妙な振る舞いです。これを覚えておいて、次回のXcodeアップデートが来たらすぐにテストしましょう。 – datell

+0

私もこれに気付きました。私は私が私のものを作ったとき、私はこの投稿を見ませんでした:http://stackoverflow.com/questions/43484206/xcode-stdcout-output-acting-odd –

+0

素晴らしい。私はこれが実際に修正されてうれしいです。 Appleはソフトウェアのバグに常に対処しているわけではありません。これは未治療になったら私を殺しただろう。 –

関連する問題