私は、ヘッダファイル<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. jQueryのis()関数の代わりに?
- 3. Goの関数オーバーロードの代わりに?
- 4. jqueryのロード関数の代わりに
- 5. ホバー関数jQueryの代わりにトグル
- 6. コピー&ペーストプログラミングの代わりに関数
- 7. URLDownloadToFile関数の代わりに
- 8. python:匿名関数の代わりに
- 9. 関数kbhit()とgetch()を組み合わせた関数はありますか?
- 10. 関数ポインタの代わりに値(?)で関数を渡す?
- 11. Knockout.jsカスタム関数を返す関数の代わりに、値
- 12. xhr.overrideMimeType()関数の代わりにクロスブラウザーがありますか?
- 13. php関数openssl_verify()の代わりにColdfusionがありますか?
- 14. JAEA +関数の代わりにHashMapを作成する
- 15. ボトルフレームワークとOOP、関数の代わりにメソッドを使用する
- 16. jqueryにファイルの代わりにPHP関数を渡す$ postメソッド
- 17. コレクションの代わりにnilを返すRailsの一対一の関係
- 18. セマフォの代わりにintrensicのアトミック関数の使用
- 19. Cでマクロの代わりに関数を呼び出す
- 20. 複数の代わりに単一の関数を使用するJQuery
- 21. Purescriptハロゲンコンポーネント関数:レコードの代わりに間隔のある引数を渡す?
- 22. 数字の10進数の代わりに指数関数として表示
- 23. Double in MongoDB group()関数の代わりに長いアキュムレータ
- 24. C++ - 仮想関数の代わりにテンプレートを使用
- 25. アクティブなオーバーレイjquery JS関数からセレクタの代わりに
- 26. NSWindow setFrame:.. animated:YES]関数をアニメーション化する代わりに、代わりにアニメーションを使用できますか?
- 27. MATLABのdsearch関数の代わりに使用するものは?
- 28. 2つの関数の代わりにラムダを使用するラケット
- 29. の代わりに
- 30. グローバル変数の代わりに?
、ヘッダは単に 'の#include'、**ない** 'の#include ' ' –
GManNickG
私は実際にはいつもclrscr()でプログラムを開始し、最初はgetch()で終了する人がいるのかと疑問に思っていました。 – UncleBens