View Full Version : روش استفاه از تابع getline
farhadamin
پنج شنبه 16 اسفند 1386, 23:30 عصر
سلام
یک مشکلی با تابع getline
داشتم...ممنون می شم جواب بدید..... جایی از برنامه که از تابع getline استفاده کرده ام..برنامه برای دریافت اسم توقف نمی کنه و به مرحله بعد می ره ممنون می شم اشکال را بهم بگید....
int main()
{
int choice=0;
struct person{string navn1; string adresse; string tlf;} data;
map <string, person> tlfbog;
.
.
.
.
string navn, efternavn;
cout <<"Indtast navn: ";
getline(cin, data.navn1);
cout <<"Indtast adresse: ";
cin >> data.adresse;
cout <<"Indtast telefonnr.: ";
cin >> data.tlf;
tlfbog.insert(pair<string, person>(data.navn1,data));
ICEMAN
جمعه 17 اسفند 1386, 10:07 صبح
این کد و یه نگاه بنداز:
string name;
getline( cin, name );
یا
const int SIZE = 80;
char buffer[ SIZE ];
cout << "Enter a sentence:" << endl;
cin.getline( buffer, SIZE );
http://www.cplusplus.com/reference/string/getline.html
http://www.cplusplus.com/reference/iostream/istream/getline.html
farhadamin
جمعه 17 اسفند 1386, 20:48 عصر
سلام ممنون
مشکل اینحاست که آرایه ی من توی یک struct قرار داره...اگه به کد نگاه کنید
struct person{string navn1; string adresse; string tlf;} data;
منظورم navn1 هستش.
من به این دو صورت امتحان کردم... نشد.
getline(cin, data.navn1);
و
cin.getline(data.navn1, 100);
ممنون می شم اگر کسی می دونه راهنمایی کنه...
ICEMAN
یک شنبه 19 اسفند 1386, 08:09 صبح
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
struct movies_t
{
string title;
int year;
} mine, yours;
void printmovie (movies_t movie);
int main ()
{
string mystr;
mine.title = "2001 A Space Odyssey";
mine.year = 1968;
cout << "Enter title: ";
getline (cin,yours.title);
cout << "Enter year: ";
getline (cin,mystr);
stringstream(mystr) >> yours.year;
cout << "My favorite movie is:\n ";
printmovie (mine);
cout << "And yours is:\n ";
printmovie (yours);
return 0;
}
void printmovie (movies_t movie)
{
cout << movie.title;
cout << " (" << movie.year << ")\n";
}
امیدوارم این کارت و راه بندازه
ICEMAN
یک شنبه 19 اسفند 1386, 09:12 صبح
البته اینجا هم توضیح خوبی داده
http://en.wikipedia.org/wiki/C%2B%2B_structures_and_classes
farhadamin
شنبه 25 اسفند 1386, 23:53 عصر
ممنون ... جواب را پیدا کردم باید به یکی از دو صورت زیر استفاده بشود...
# cin >> i;
# cin.ignore(100,'\n');
# getline(cin, s);
یا
# cin >> i;
# fflush(stdin)
# getline(cin, s);
بازم ممنون
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.