私は、ヘッダファイル<iostream.h>
を使用して、私の出力に画面を保持しようとしているが、私は<iostream.h>
で<conio.h>
のgetch()
& clrscr()
関数や他のC++ライブラリに任意の同等の機能を知りません。そのような機能はありますか?conio.hのgetch()に対するiostream.hの代わりの関数?
答えて
getch()およびclrscr()はC++で動作します。 conio.h
を含めるただし、(何らかの理由で)あなたができない場合は、Enterキーを押すユーザに尋ねる表示メッセージとconio.h、
方法CINについて>> dummy_varが含まれていますか?
-1、conio.hはC標準の一部ではないためです。 –
+1というのは、CやC++でできることは、実際には標準ではないからです。いずれの標準も完全なものではなく、標準で指定されているヘッダー以外のヘッダーも含めることができます。 – MSalters
conio.h関数は、CまたはC++の一部ではなく、言語のコンパイラ拡張です。標準のC++には直接の置き換えはありません。
getch()の場合、int ch = std::cin.get();
はおそらく最も近いものですが、これはバッファリングされた標準入力から読み込まれることに注意してください。ただし、conio.h getchはバッファリングされていない読み込みを行います。
clrscr()の実装は、プラットフォームに非常に依存します。すべての画面や端末がクリアという概念を持っているわけではなく、その機能にアクセスする方法も大きく異なります。
端末を文字ストリームのセット以外のものとして扱う必要がある場合は、潜在的な端末、スクリーン、またはコンソールの詳細を隠すライブラリを探すのが最善の方法です。あなたがUNIXシステムにいる場合は、cursesまたはncursesライブラリを見てください。私は他のOSの提案について知らない。
ただcin.get()を使用してください。
システム(「一時停止」)を使用すると、「続行するには任意のキーを押してください」というメッセージが表示されます。しかし、Windows環境でのみ動作します。私はすべての "システム"コマンドはdosコマンドだと思います。私は
あなたは途中で正しいです。 'system(
@Kokizzu: 'pause:command not found' –
はただ、これらの二つの機能を使用して間違っているなら、私を修正してください:
fflush(stdin);
getchar();
Visual StudioとのDev C++はとてもそのiostream
ヘッダに余分なヘッダーファイルをインクルードする必要がこれを含みません。
http://stackoverflow.com/a/257203/183120 ' fflush(stdin) 'は未定義の動作で、Cの標準7.18.5.2/2で呼び出されています。 – legends2k
最新の回答では、std::cin.get()
を使用できます。これはほとんどのコンパイラで使用できます。それでも問題が解決しない場合は、別のものを追加してみてください。 system("PAUSE")
を使用して
int main() {
// ...
std::cin.get();
std::cin.get();
return 0x00;
}
は、Windows上でのみ使用可能で、habitをプログラミングbadです。その理由は、文字通りが一時停止します。またはは、入力を待つのではなく、プログラムをフリーズします()。すなわち、キーを押すと終了します。
#include<iostream>
...
std::getchar();
これは私が通常使用するものです。
conio.h
は、Windows/DOS環境で非常に基本的なベアメタルキーボードの入力と処理に使用されていた(古代の)WindowsおよびMS-DOS/PC-DOS Cライブラリです。
とclrscr()
は、このヘッダーによる非標準的な追加であり、標準のC関数では可能な限り避けるべきです。 getch()
は、通常Cでscanf()
,fread()
,およびstd::cin.get
で置き換えることができます。 clrscr()
については、あなたが得ることができる最も近いです:
for(int i = 0; i < 100; i++)
{
printf("\n");
}
OR:
* nixの環境でncurses.h
もあります。 Here's a linkにいくつかの情報があります。 C++で
私は、これは古い問題であることを理解しますが、私は人々が同様の質問への答えを探している可能性があるため、それにもかかわらずお答えするつもりです:
- 1. getch()関数のヘルプ
- 2. Goの関数オーバーロードの代わりに?
- 3. jqueryのロード関数の代わりに
- 4. Matlabの "gather"関数の代わりに
- 5. postgresqlのtrunc関数の代わりに
- 6. 関数の代わりにコールバックのconsole.log
- 7. jQueryのis()関数の代わりに?
- 8. onMouseDownの代わりにonMouseMove関数
- 9. コピー&ペーストプログラミングの代わりに関数
- 10. ラムダ関数の代わりに
- 11. python:匿名関数の代わりに
- 12. ホバー関数jQueryの代わりにトグル
- 13. copyTo関数の代わりに
- 14. Javascript arrow関数の代わりに...
- 15. URLDownloadToFile関数の代わりに
- 16. 関数kbhit()とgetch()を組み合わせた関数はありますか?
- 17. getch()関数の宣言
- 18. 素数に対するリストの代わりにPythonの高速な代替?
- 19. rの関数を代入する代わりの
- 20. Knockout.jsカスタム関数を返す関数の代わりに、値
- 21. 関数ポインタの代わりに値(?)で関数を渡す?
- 22. php関数openssl_verify()の代わりにColdfusionがありますか?
- 23. xhr.overrideMimeType()関数の代わりにクロスブラウザーがありますか?
- 24. yの代わりにxの関数戻り値
- 25. * argsと** kwargsを関数の引数の代わりに使う
- 26. スクレーパーで "print"の代わりに "return"関数を使用する
- 27. R相関はテキストの代わりに数字をプロットする
- 28. JAEA +関数の代わりにHashMapを作成する
- 29. ボトルフレームワークとOOP、関数の代わりにメソッドを使用する
- 30. 関数戻り値の代わりに戻り値なし
、ヘッダは単に 'の#include'、**ない** 'の#include ' ' –
GManNickG
私は実際にはいつもclrscr()でプログラムを開始し、最初はgetch()で終了する人がいるのかと疑問に思っていました。 – UncleBens