cinリターン完了入力

1097 ワード

一般的にcinはスペースやリターンに遭遇しても無視されますが、昨日ccfの試験問題をして、いくつかのデータを入力することを要求しました.これらのデータの長さは不定で、他のデータ(例えば特定の終了符やctrl+z)を入力することはできません.これは入力が2つのリターンを認識し、自動的に終了しなければならないことを要求しました.結局、私はできませんでした.
ええと、帰ってからこの問題を調べてみましたが、この問題は簡単です.一般的には、cmdに入力したデータはバッファに保存され、車に戻ったりeofに遭遇したりするとcinに読み込まれ、cinは改行やスペースを無視するので、2つのスペースで停止するには、特別な設定が必要です.
次はコードです.プログラムを変更して各行に2つの数字を入力してから、車に戻って、次の行に2つの数字を入力し続けたり、2つの車に連続して入力したりして、終わります.
#include 
#include 

#include 
using namespace std;

#include 
#include 

int main()
{
	while(1)
	{
		//         ,     
		int m, n;
		cin>>m>>n;

		//      
		char c = cin.get();

		//           
		char c2 = cin.get();

		//     
		if (c2 == '
') { break; } else { // , char b[255]; // cin.getline(b, 255); // // , // b …… for (int i = strlen(b)+1; i> 0; i--) { b[i] = b[i-1]; } b[0] = c2; } } system("pause"); return 0; }

over.