5

電卓をシミュレートする簡単なプログラムを作成しようとしています。Ctrl+キーストロークが行われたときにプログラムを終了またはオフにしたいと思いDます。私はstackoverflowを検索し、Ctrl+CまたはCtrl+の他の例を見ましAたが、例はJavaとCにあります.

C の場合:

(scanf("%lf", &var);

Java の場合、 +が押される と aSIGINTが発生します。CtrlZ

signal(SIGINT,leave);  
    for(;;) getchar();

C++でCtrl+に対して何ができるのか疑問に思っています...D

みんな、ありがとう!

4

5 に答える 5

3

Ctrl+Dは、stdin ファイル記述子がファイルの終わりを返すようにします。入力読み取り関数はこれを反映し、ファイルの終わりに達したときにプログラムを終了できます。ところで、C の例は C++ でそのまま動作するはずですが、最も慣用的な C++ ではないかもしれません。

ところで、これは宿題ですか?その場合は、必ずそのようにタグ付けしてください。

于 2010-12-30T15:06:08.497 に答える
0

Unixでは、端末はCtrl+ D(空の行)を入力の終わりとして解釈します。からさらに読み取ると、stdinが返さEOFれます。これは監視できます。

于 2010-12-30T15:07:46.833 に答える
0

Ctrl+ DUnixプラットフォームではEOFです。各文字を取得している場合は、EOFを取得したかどうかを確認できます。

于 2010-12-30T15:07:25.313 に答える
0

「やめる」や「出る」などのキーワードをスキャンして、生活を楽にすることができます。前回電卓を使ったとき、これらの単語はキーパッドにありませんでした。

多くの単純な電卓プログラムは、入力を改行で終了するテキストとして読み取ります。彼らはメモリ内のテキストを解析し、答えを吐き出します。

他のより洗練された電卓プログラムは、ウィンドウを使用し、イベント ドリブンです。「=」のようなボタンを使用して、入力の終了と計算の開始を知らせるものもあります (RPN 電卓では機能しません)。

これらの手法は、制御文字シーケンスを使用してテキスト入力の終わりを判断する手間を省き、移植性を高めます。

于 2010-12-30T18:39:32.570 に答える