先週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/からダウンロード
私はできるだけ多くをバッファリングするために、標準的な動作は、(定義された標準が、一般的ではない)改行が書き込まれるまでフラッシュするのではないことをかなり確信しています内容は可能です(明示的にフラッシュされない限り) –
'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
これはCコードではありませんが、明らかにC++です。正しいタグを使用してテキストを編集してください! – Olaf