30/09/2018, 18:04
Tại sao std::cin vào chuỗi có khoảng trống lại không được?
Như tit lâu rồi mình cũng không đụng vào lập trình nên giờ đang mò lại và gặp trường hợp như vầy
Mình khai báo name là Char, khi nhập vào với nọi dung 1 dãy kí tự vd : abcdef thì oke nhưng khi có 1 dấu space vd như :abc def là chương trình tự skip cái phần nhập mssv qua luôn, như vậy là sao nhĩ
#include "iostream"
#include "fstream"
using namespace std;
void nhap(float d[])
{
char name[50];
int mssv;
float avg = 0;
cout << "Ten :
";
cin >> name;
cout << "MSSV :
";
cin >> mssv;
for (int i = 1; i < 4; i++)
{
avg = avg + d[i];
}
avg = avg / 3;
}
void main()
{
char name[50];
int mssv,i;
float avg, d[100];
nhap(d);
}
Bài liên quan
Theo như em học qua thì name nó sẽ nhận abc cho name và phần def sẽ được nhập vào mssv. Anh có thể vào video anh đạt dạy nói về cin trong c++ nếu không hiểu. Vì em giải thích hơi tù:smile:
bạn có thể dùng cin.getline(array, size); để nhập dữ liệu có khoảng trắng, tìm hiểu thêm nha
Cơ chế của std::cin là sẽ đọc cho tới khi nào gặp khoảng trắng (space).
Vì thế nếu muốn đọc nguyên một dòng luôn thì phải dùng
cin.getline(array, size)
như anh @yaphats nói