ヘッダーファイル<iostream.h>
を使用して出力に画面を保持しようとしていますが、<conio.h>
の<iostream.h>
のgetch()
&clrscr()
関数と同等の関数がわからない他のC++ライブラリ。そのような機能はありますか?
_conio.h
_関数は、言語のコンパイラ拡張機能であり、CまたはC++の一部ではありません。標準C++には直接の置き換えはありません。
Getch()の場合、int ch = std::cin.get();
はおそらく最も近いものですが、これはバッファされた標準入力から読み取ることに注意してください。conio.hgetch
はバッファなしの読み取りを行うと思います。
clrscr()
の実装は非常にプラットフォームに依存します。すべての画面または端末がクリアの概念を持っているわけではなく、それらの機能にアクセスする方法が大幅に異なります。
端末を文字ストリームのセット以外のものとして扱う必要がある場合は、おそらく、基礎となる端末、画面、またはコンソールの詳細を隠すライブラリーを探すことをお勧めします。 UNIXishシステムを使用している場合は、cursesまたはncursesライブラリをご覧ください。他のOSについての提案は知りません。
getch()およびclrscr()はC++で動作します。 conio.hを含める
ただし、(何らかの理由で)conio.hを含めることができない場合、
ユーザーにEnterキーを押すように要求する表示メッセージを含むcin >> dummy_varはどうですか?
cin.get()を使用してください。
次の2つの関数を使用するだけです。
fflush(stdin);
getchar();
Visual StudioおよびDev C++では、iostream
ヘッダーにこれが含まれているため、追加のヘッダーファイルを含める必要はありません。
これは私が通常使用するものです:
#include<iostream>
...
std::getchar();
私はこれが古い質問であることを理解していますが、人々が同様の質問への答えを探しているかもしれないので、私は答えます。
_conio.h
_は(古代の)WindowsおよびMS-DOS/PC-DOS Cライブラリであり、Windows/DOS環境で非常に基本的なベアメタルキーボード入力と処理に使用されています。
getch()
とclrscr()
は両方ともこのヘッダーによる非標準の追加であり、標準のC関数で可能な場合は避ける必要があります。 getch()
は通常、Cではscanf()
、fread()
、C++では_std::cin
_および_std::cin.get
_に置き換えることができます。 clrscr()
に関しては、最も近いものは次のとおりです。
_for(int i = 0; i < 100; i++)
{
printf("\n");
}
_
OR:
* nix環境には_ncurses.h
_もあります。 ここにリンクがあります それに関するいくつかの情報へ。
Conio.hのプラットフォーム固有の関数getch()
には、2つの特別な機能があります。
エコーは、C/C++環境の外部の端末によって行われます。端末を操作することによってのみ制御できます。また、iostream.hヘッダーでバッファーなしのI/Oを取得することはほぼ不可能です。
したがって、iostream.hのみを使用してgetch()
の近くに到達することはできません。
(例えば、termios.hを使用してエコーを無効にするなど、多くのgetch()
implementationがあります。)