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ảo Ngọc viết 20:11 ngày 30/09/2018

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:

Ha Gia Phat viết 20:20 ngày 30/09/2018

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

nhatlonggunz viết 20:05 ngày 30/09/2018

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

Bài liên quan
0