電子書籍の厳選無料作品が豊富!

プログラミング初心者です。
Visal Studio 2010を使用してC++の勉強をしています。

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

以上になります。説明が下手で申し訳ありません。お読みいただきありがとうございました。
よろしくお願いいたします。

A 回答 (4件)

2012にすると日本語になるのですが、自動翻訳のもので、しなくていいところまで訳されたりして、かえってわかりずらいんですよ。


http://msdn.microsoft.com/ja-jp/library/vstudio/ …

で、メンバー関数を一つ一つ読んでいけば
http://msdn.microsoft.com/ja-jp/library/vstudio/ …
みたいな方法もある、ということです。
    • good
    • 0
この回答へのお礼

std::getline(std::cin, s);
で、できました!ありがとうございます!BAです!

お礼日時:2013/11/10 17:13

#2ですがミスです。


Ctrl+Zですね、失礼しました。
    • good
    • 0
この回答へのお礼

補足ありがとうございます。

お礼日時:2013/11/10 17:14

#include<iostream>


using namespace std;

int main(){
int n;
while(cin>>n){ //while(scanf("%d",&n)!=EOF)でも可
cout << "n=" << n << endl;
 }
return 0;
}

この時、入力時に(Ctrl+C)を押せば、入力終了でreturnが実行されます。(cinやscanfは正常に値が入力されると、返り値に1(条件式に使うと真)を吐き出す)
Enterではないとダメならば、力になれません、すいません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やはりEnterで実現したいと考えております。
アイデアありがとうございます。

お礼日時:2013/11/09 17:46

http://msdn.microsoft.com/ja-jp/library/vstudio/ …
operator >> 以外にも、cinから読み出す方法があります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
う…英語。これはoperatorを使い>>を自分で多重定義する、ということでしょうか?
ちょっと難度が高そうですが参考の記事をよく読ませていただき考えてみます。ありがとうございます。

お礼日時:2013/11/09 17:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!