ヘッダー ファイルを使用して出力に画面を保持しようとしていますが、 inまたは他の C++ ライブラリの&関数に<iostream.h>
相当する関数がわかりません。そのような機能はありますか?getch()
clrscr()
<conio.h>
<iostream.h>
11 に答える
関数は言語のconio.h
コンパイラ拡張であり、CまたはC++の一部ではありません。標準のC++には直接の置き換えはありません。
getch()の場合、int ch = std::cin.get();
おそらく最も近いものですが、これはバッファリングされた標準入力から読み取られるのに対し、conio.hgetch
はバッファリングされていない読み取りを行うことを覚えておいてください。
の実装はclrscr()
プラットフォームに大きく依存します。すべての画面または端末にクリアの概念があるわけではなく、その機能にアクセスする方法が大きく異なります。
端末を一連の文字ストリーム以外のものとして扱う必要がある場合、最善の策は、基盤となる端末、画面、またはコンソールの詳細を非表示にするライブラリを探すことです。UNIX風のシステムを使用している場合は、cursesまたはncursesライブラリを確認してください。他のOSの提案は知りません。
getch()およびclrscr()はC++で動作します。conio.hを含める
ただし、(何らかの理由で)conio.hを含めることができない場合は、
ユーザーにEnterキーを押すように求める表示メッセージが表示されたcin>>dummy_varはどうですか。
cin.get();を使用するだけです。
これは私が通常使用するものです:
#include<iostream>
...
std::getchar();
これは古い質問であることは理解していますが、同様の質問に対する回答を探している人がいる可能性があるため、回答します。
conio.h
(古代の) Windows および MS-DOS/PC-DOS C ライブラリであり、Windows/DOS 環境で非常に基本的なベアメタル キーボード入力と処理に使用されています。
getch()
とは両方とも、clrscr()
このヘッダーによる非標準の追加であり、標準 C 関数では可能な場合は避ける必要があります。通常、C および C ++ では、、、にgetch()
置き換えることができます。に関しては、取得できる最も近いものは次のとおりです。scanf()
fread()
std::cin
std::cin.get
clrscr()
for(int i = 0; i < 100; i++)
{
printf("\n");
}
また:
ncurses.h
*nix 環境にもあります。これに関するいくつかの情報へのリンクがあります。
clrscr()
私は一般的に使用するため
system("cls"); //Windows
system("clear"); // Linux
そして、getch()
私が同意する関数については @iKlsR
、cin.get() を 2 回使用するだけです。
{ ...
std::cin.get();
std::cin.get();
}
システムを一瞬または特定の時間間隔で一時停止する場合は、次を使用します。
system("sleep 5s"); //for linux
基本的に、関数はターミナルsystem("x")
でコマンドを実行します。x
したがって、代わりに別の関数を使用することで、それを悪用できますx
。(ディストリビューションまたはOSに関連するコマンドを使用するように具体的にしてください)
「続行するには任意のキーを押してください」というメッセージを生成する system("pause") を使用できます。ただし、Windows環境でのみ機能します。「システム」コマンドはすべて dos コマンドだと思います。間違っていたら訂正してください
システム(「一時停止」)を使用できるWindowsで作業している場合、これにより「続行するには何かキーを押してください」というメッセージが表示されます。