PDA

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);

بازم ممنون