PDA

View Full Version : مشکل با cin.getline *** سوال یک مبتدی***



Amir-Shabani
جمعه 02 اردیبهشت 1390, 13:30 عصر
سلام بر همه ....

مشکل من با تابع cin.getline هستش...

به این کد نگاه کنید :


#include "stdafx.h"


#include<iostream>
using namespace std;
int main()
{
char str[3];
char str1[3];


cout<<”str”;
cin.getline(str,3,'t');
cout<<endl;
cout<<str<<endl;
cout<<"enter str1";
cin.getline(str1,3,'y');
cout<<endl;
cout<<str1<<endl;
system("pause");

return 0 ;

}


مگه نباید دو تا رشته رو از کاربر بگیره... ولی فقط str رو میگیره و str1 رو ازش رد میشه و برنامه رو تموم میکنه...

چرا!؟


با سپاس...

tdkhakpur
جمعه 02 اردیبهشت 1390, 21:12 عصر
مگه نباید دو تا رشته رو از کاربر بگیره... ولی فقط str رو میگیره و str1 رو ازش رد میشه و برنامه رو تموم میکنه...
چرا!؟

از نظر یک برنامه نویس نباید این کار رو انجام بده اما ساختار cin به این شکلیه و داخل متدها یک بافر گلوبال داره که باید خالی بشه تا عملیات بعدی این بافر رو پر نبینه و ازش نگذره
از


cin >> ws;

استفاده کنید.

Amir-Shabani
شنبه 03 اردیبهشت 1390, 07:15 صبح
خیلی ممنون... ولی جواب نداد... بازم رد کرد...

tdkhakpur
شنبه 03 اردیبهشت 1390, 11:54 صبح
خط زیر رو قبل از cin دوم به کار ببرید


cin.clear(0);