我有一個程序要求用戶多次輸入輸入,並將輸入存儲在不同的char變量中,然後對這些變量執行操作。C++如何一次限制輸入到一個字符?
我的問題是,我想限制輸入一次爲一個變量工作。 例如:
char a = 'a', b = 'b', c = 'c';
cout << "Enter a ";
cin >> a;
cout << "\nEnter b ";
cin >> b;
cout << "\nEnter c ";
cin >> c;
cout << "Entered chars were " << a << ", " << b << ", " << c;
運行此,如果用戶輸入噸ÝU(包括字母之間的間隔)可以讓程序進入噸入變量A,Y爲變量b和u到變量c。從本質上講,它會排序「通過」,並自動爲cin設置值,而不是要求用戶爲每個值執行一次。
我想要的是檢查用戶輸入的變量a是否只有1個字符。
我已經嘗試過使用cin.good(),但是在輸入cin >> a以上的一個以上字符後它會返回0;我也嘗試使用cin.get(a);然後檢查cin.good()。如果用戶輸入多個字符,這也會返回0。
有沒有辦法限制輸入一次只能用於一個cin操作?
你可以調用'ignore'來終止其他輸入(緩慢而痛苦地)。 – chris 2013-03-22 16:52:10
一次使用getline獲取一行。放棄每一行上的任何多餘的值。 – john 2013-03-22 16:53:30