• ベストアンサー

Enterキーを押されたら次の処理に移るという事をしたい。

コンソールアプリケーション上で文字列を表示させた後、ユーザーがエンターキーを押したら次の文字列を表示するという仕様にしたいのですが、エンターキーだけ入力待ちにするっていうのはどのように書けばいいんでしょうか?

noname#45614
noname#45614

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#include <stdio.h> int main(void) { char *str[] = {"abc", "def", "ghi", "jkl"}; int i; for(i = 0; i < 4; i ++){ while(getchar() != '\n') ; puts(str[i]); } return 0; }

その他の回答 (1)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

#include <stdio.h> #include <stdlib.h> void main(void) {   char c[2];   printf("***>");   do {     fgets(c,2,stdin);   } while ((c[0] != '\n') && (c[1] != '\n'));   printf("+++>");   do {     fgets(c,2,stdin);   } while ((c[0] != '\n') && (c[1] != '\n')); } エンターキー以外の文字は、fgetsを繰り返して、すべて捨てるようになっている。 以下のように繰り返し処理をしない場合、最初の1回目はうまく動くが、2回目で「素通り」する場合があり、失敗する。 #include <stdio.h> #include <stdlib.h> void main(void) {   char c[2];   printf("***>");   fgets(c,2,stdin);   printf("+++>");   fgets(c,2,stdin); } 素通りするのは、1回目の ***> の表示に対し「123<エンターキー>」のように、沢山の文字を打ち込んだ時。実行してみると判るが +++> の次で止まらずに素通りする。

関連するQ&A

  • 文字が消える(Enterキー)

    たまにですが、検索窓等で文字を入力した後にエンターキーを 押すと、入力した文字が全て消えてしまうことがあります。 文字変換を確定させようと思って押すと消えてしまい、その後は 再起動しないと直らないこともあります。 会社で使っているPCですが、他の人もたまになるということなので、PC独自の問題とも考えずらいです。 何か理由が分かる方いらっしゃいますか?

  • コンソールアプリの入力時に改行させたくない

    プログラミング初心者です。 Visal Studio 2010を使用してC++の勉強をしています。 コンソールアプリケーションにてstd::cinを使ってstring型かchar型変数への入力を受けさせます。 cinによる入力待ちの状態になったとき、何も入力しないでエンターキーを押すと、コンソールの画面上でカーソルが次の行へ移動し、まだ入力を待ち受けてくれます。 これを、「何も入力されてない状態でエンターキーが押されたら、変数へ何も代入しない or ヌルなどを代入して、終わり」という動作にすることはできないでしょうか? 例えるなら、getcharです。getcharならエンターを押すと改行コードを受け取ってそのまま終わってくれます。しかし、入力には複数の文字列を想定しているため、getcharは使いたくありません。 cin以外の入力でも構いませんので、何か良いアイディアがありましたらご教示ください。 以上になります。説明が下手で申し訳ありません。お読みいただきありがとうございました。 よろしくお願いいたします。

  • 検索 エンター 消える

    2016年10月15日現在ですが、グーグル検索で[検索したい文字を入力]して、[エンターキーを押す]をしても検索されず、しかも検索文字も消えてしまいます。 もう一度[検索したい文字を入力]して、[エンターキーを押す]をすれば検索はされますが、毎回二度手間なことを行うので大変です。 ブラウザは[グーグルクローム]で、検索サイトは[Google検索サイト]になります。 そして、不思議なことに、Google Chromeの場合ユーザー切り替えがあり別のユーザーに切り替えた方では今回の症状が現れません。 何がおかしいのでしょうか?? 色々調べてみましたが同じようにお困りな方が沢山いることがわかりました。 最新の解決方法を教えてください。

  • JOptionPaneの「いいえ」をEnterで

    こんにちは。 現在、JOptionPaneを使って出したダイアログのボタンを エンターキーで選択したときの処理についてこまっています。 「いいえ」のボタンをエンターキーで押すと、 なぜか「はい」を押したときと同じ処理をしてしまうのです。 これを防ぐには、どうすればよいでしょうか? 以下、ソースコードの一部です。 //「はい」「いいえ」の結果を受け取る変数を宣言 int sentaku = 1; //ダイアログボックスを表示する処理 sentaku = JOptionPane.showConfirmDialog (null, "本当にこのイベントを削除しますか?", "削除確認" ,0); //上のダイアログボックスで選択された結果をコンソールに出します。 System.out.println("本当に削除しますか?(0:はい 1:いいえ)→"+sentaku); //ここで、「いいえ」をエンターキーで押すと、sentakuが0を返してしまいます。 //スペースキーで押すと、sentakuは1を返してくれました。

    • ベストアンサー
    • Java
  • excelで次のようなことをチェックできますか?

    excelで次のようなことをチェックできますか? もし、合致していれば(真であれば)決められた得点を表示する というようなことです。 1.A3セルに入力した文字列が中央ぞろえされている。 2.A4に入力したデータは、’0120といように数字が文字列化されている。 3.B4セルには「セルポインタ」という文字列が入力されている。 3.A5セルに入力されている数式が=sum(b5:b11)である。値ではチェックしない。 4.A6セルに表示されている値が1234である(数式で表示)。 5.A7セルにrankで表示した値が 北海道 である。

  • Enterと矢印keyが狂いました

    Enterkeyを押すと、 漢字変換確定用でも改行させる場合でもともに 両者の作業目的の実行とともに その次に / が打ち込まれます。  右矢印keyを押すと その位置以降のそれまで打ち込んだ文字列が右に移動してspaceが入ります。 また、phraseを・漢字変換する場合、中間の文字列の変換を直してその右に右矢印keyで移るとさっき直した変換が元の間違った漢字に戻ります。 加えて、BackSpace keyを押し続けてもrepeat処理してくれません。 以上、何が原因なのですか、ご教示ください。

  • Enterキーを押しても送信しないようにする

    ユーザーリクエストを受付けるHTMLフォームに 例えばテキストボックスがいくつかあって送信ボタンをクリックするとCGIにパラメータが送信されるという時に、テキストボックスの1つめにデータを入れた後、2つめ以降まだ入力してないのにEnterキーを思わず押してしまって送信されることってありますよね。 Enterキーを押しても送信されないようにすることって出来るのですか。よく、空白のテキストボックスが残っていると、「○○を入力してもう一度送信ボタンをクリックしてください」というエラーメッセージを表示して戻す。という手がありますが、テキストボックスが空白でも、データ送信はできる様にしたいのです。そうするとEnterキーを殺すしか方法が思いつかないのですが・・・

    • ベストアンサー
    • Perl
  • 次の問題がわかりません。

    次の問題がわかりません。 BASICでのプログラミングの問題です。 適当な英数字記号を入力したとき、 ・入力文字列の長さ ・すべて大文字に変換した文字列 ・すべて小文字に変換した文字列 ・順序を逆にした文字列 を表示するプログラムを作る。 例 入力:This is a test 出力: 長さ:15 大文字変換:THIS IS A TEST 小文字変換:this is a test 逆旬変換:tseT a si sihT BASIC初心者です。 若干でも解説をつけていただけると幸いです。

  • テーブルでEnterしても次の行の冒頭に移動しない

    エクセル2007挿入からデータ範囲をテーブルに設定すると Enterキーを押すと次の行の1列目に移動する、と 何かで読んだのですが 真下のセルにしか移動しません。 次の行のA列に移動するにはどうしたらいいですか? 別にテーブルでなくても次の行のA列に移動できれば何でもいいです ちなみにテーブル範囲はA~AL列 列によっては関数や入力規則が設定されている。 あまり入力されない(空白)列もある。 一番多いのはA~P列まで入力して次の行に移動するパターン。 途中列でEnterしても最終列まで行ってEnterしても下のセルにしか 移動できませんでした。

  • エクセルで「Enter」が押されたら処理を動かす

    よろしくお願いします。 エクセルでA1のセルの何か入力されたら、A2に「aaaaa」、A3に「bbbbb」と表示したいのです。B6のセルに何かが入力されたらB7に「aaaaa」とB8に「bbbbb」です。 適当な大きさにセルを編集して使うのでセルの高さや幅は可変です。A4用紙で印刷出来る範囲で利用するので、どのセルに入力されるかはわかりませんし、どの列まで、どの行まで利用するかも決まりません。どのセルに入力されても、入力されたセルの1行下に「aaaaa」、2行下に「bbbbb」という動きをするようにしたいのです。 また、何かを入力されてというのは「Enter」が押された時をイメージしていますが、実際には「12345」とキーを押し「→」でセル移動することもあると思いますし、マウスで移動することもあるので、「セルに何かが入ったら」という感じです。 今、セルの条件付き書式設定で「次のセルのみを書式設定」で「空白なし」の場合に塗りつぶしをしているのですが、そのタイミングで1行下と2行下に固定表示したいです。 勿論、そのセルが空白になれば、1行下、2行下も空白に戻したいです。 よろしくお願いします。 教えてもらえば理解出来るのですが、エクセルでマクロ?を組むのは経験が浅く、何処に何を書けば良いのか、詳しく教えてもらえれば幸いです。

専門家に質問してみよう