little_greg Опубликовано 11 сентября, 2009 Жалоба Поделиться Опубликовано 11 сентября, 2009 Подскажите способ как сделать так, чтобы при использовании string sName программа работала нормально, а то при вводе имени с пробелом, потом больше программа ничего не вводит. #include <iostream>#include <cstring>using namespace std;const int SIZE = 3;struct Car{ string sName; int nYear;};int main(){Car* pAuto = new Car[size];for (int i = 0; i < SIZE; i++){ cout << "enter car name: "; cin >> pAuto[i].sName; cout << "enter model year: "; cin >> pAuto[i].nYear; cin.get(); }for (int l = 0; l < SIZE; l++){ cout << "Model name: " << pAuto[l].sName << endl << "Model year: " << pAuto[l].nYear << endl; }system("pause");return 0;}; если использовать char sName[20] и подправить несколько операторов, то все работает нормально. #include <iostream>#include <cstring>using namespace std;const int SIZE = 3;struct Car{ char sName[20]; int nYear;};int main(){Car* pAuto = new Car[size];for (int i = 0; i < SIZE; i++){ cout << "enter car name: "; cin.getline(pAuto[i].sName, 20); cout << "enter model year: "; cin >> pAuto[i].nYear; cin.get(); }for (int l = 0; l < SIZE; l++){ cout << "Model name: " << pAuto[l].sName << endl << "Model year: " << pAuto[l].nYear << endl; }system("pause");return 0;}; Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 сентября, 2009 Жалоба Поделиться Опубликовано 11 сентября, 2009 (изменено) little_greg: Используй для ввода строк с пробелами класса string вместо cin >> pAuto[i].sName; оператор getline(cin,pAuto[i].sName); Изменено 11 сентября, 2009 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.