Chức năng này được cho là đọc một phần nhỏ và đặt nó vào một mảng. Nếu người dùng nhập '0', chức năng được cho là sẽ thoát. Tôi đang cố gắng làm điều này bằng cách sử dụng hàm cin.peek() nhưng thực thi luôn đi vào câu lệnh if và không cho phép người dùng thoát ra.Cách sử dụng đúng cách cin.peek()
Làm thế nào tôi nên đúng mã này (Tôi mở cửa cho không sử dụng peek(), tôi nghĩ đó là cách đơn giản nhất để làm việc đó.)
Cảm ơn!
void enterFrac(Fraction* fracs[], int& index)
{
int n, d;
char c, slash;
cout << "Enter fractions (end by entering a 0): ";
c = cin.peek();
if (c != '0')
{
cin >> n >> slash >> d;
Fraction* f = new Fraction();
f->num = n;
f->den = d;
fracs[index] = f;
index++;
}
}
thử nghiệm này của peek() hoạt động tuy nhiên:
#include <iostream>
using namespace std;
int main() {
char c;
int n;
char str[256];
cout << "Enter a number or a word: ";
c=cin.peek();
if ((c >= '0') && (c <= '9'))
{
cin >> n;
cout << "You have entered number " << n << endl;
}
else
{
cin >> str;
cout << " You have entered word " << str << endl;
}
return 0;
}
Tôi đã thêm trường hợp tôi có thể xem peek() để hoạt động chính xác nhưng tôi không thấy điều gì gây ra sự cố trong trường hợp của tôi. – Zzz