مشکل با ++c

blzbb

New Member
چرا این ++c اینقدر ایراد میگیره
یه نگاه به این کد بندازید ببینید مشکلش چیه چرا درست کار نمی کنه

کد:
#include <iostream>
#include <string>

using namespace std;

struct student
{
	string name;
	string family;
	char gender;
	int studentID;
};

int main()
{
	student studentClass;

	cout << "Enter your name : ";
	getline(cin, studentClass.name);

	cout << "Enter your family : ";
	getline(cin, studentClass.family);

	cout << "Enter your ID number : ";
	cin >> studentClass.studentID;

	cout << "Enter your gender : ";
	studentClass.gender = cin.get();		

	return 0;
}

قسمت آخر که برای گرفتن جنس هست اصلا نمیشه چیزی وارد کرد و برنامه خارج می شه.
جالبه که وقتی کد رو به این تغییر میدم درست کار میکنه(فقط قسمت Main رو می زارم)

کد:
int main()
{
	student studentClass;

	cout << "Enter your name : ";
	getline(cin, studentClass.name);

	cout << "Enter your family : ";
	getline(cin, studentClass.family);

	[COLOR="SeaGreen"]cout << "Enter your gender : ";
	studentClass.gender = cin.get();

	cout << "Enter your ID number : ";
	cin >> studentClass.studentID;[/COLOR]		

	return 0;
}

با visual studio 2005 و borland builder 2006 هم تست کردم دوتاشون یه جور جواب میدن،
ممنون می شم راهنمایی کنید
 

blzbb

New Member
کسی که حواب نداد :cry:
به هر حال جوابشو پیدا کردم شاید بعضیا با این مشکل مواجح بشن

باید قبل از خطی که ()cin.get اسفاده شده و مشکل داره از ()cin.sync استفاده کنید.
اینجوری

کد:
int main()
{
	student studentClass;

	cout << "Enter your name : ";
	getline(cin, studentClass.name);

	cout << "Enter your family : ";
	getline(cin, studentClass.family);

	cout << "Enter your ID number : ";
	cin >> studentClass.studentID;

	[COLOR="Red"]cin.sync();[/COLOR]

	cout << "Enter your gender : ";
	studentClass.gender = cin.get();

	return 0;
}
 

rsh

Member
خیلی ممنون.
من این مشکل رو داشتم و با راه حل شما مشکل رو برطرف کردم.
 

جدیدترین ارسال ها

بالا