shaaadi
دوشنبه 06 اردیبهشت 1389, 21:27 عصر
سلام ... من دارم یک برنامه ای می نویسم ... توش باید از یه فایل بخونم ... 2 تا تابع دارم :
void Tree::open(){
file.open("data.txt");
}
void Tree::add(){
employer newman;
int height = node.size();
if (height==0)
{
vector<employer> b;
node.push_back(b);
height = 1;
}
int width = node[height-1].size();
//fstream file ;
//file.open("data.txt");
file >> newman.salary >> newman.name ;
if ( width < (height)*2 )
node[height-1].push_back(newman);
else if ( width == (height)*2 ){
vector<employer> a;
node.push_back(a);
node[height].push_back(newman);
}else
cout << "u r wrong!" << endl;
// file.close();
}
اول تو همین تابع add فایل رو باز می کردم اما دیدم هر دفعه از اول می خونه برای همین یک تابع جدا گانه تعریف کردم که فقط یک بار باز بشه ... اما تو این حالت هم ... فقط دفعه ی اول از فایل می خونه و دفعه های بعد چرت و پرت چاپ می کنه ... چرا ؟ مگه یک بار باز کردن فایل کافی نیست ؟(اخه نبستمش که !)
یک سوال دیگه این که چرا عدد رو درست از تو فایل می خونه اما name رو فقط حرف اولش رو می خونه ... اگه به خاطر اینه که char تعریف کردم ... پس چی باید تعریف کنم ؟
void Tree::open(){
file.open("data.txt");
}
void Tree::add(){
employer newman;
int height = node.size();
if (height==0)
{
vector<employer> b;
node.push_back(b);
height = 1;
}
int width = node[height-1].size();
//fstream file ;
//file.open("data.txt");
file >> newman.salary >> newman.name ;
if ( width < (height)*2 )
node[height-1].push_back(newman);
else if ( width == (height)*2 ){
vector<employer> a;
node.push_back(a);
node[height].push_back(newman);
}else
cout << "u r wrong!" << endl;
// file.close();
}
اول تو همین تابع add فایل رو باز می کردم اما دیدم هر دفعه از اول می خونه برای همین یک تابع جدا گانه تعریف کردم که فقط یک بار باز بشه ... اما تو این حالت هم ... فقط دفعه ی اول از فایل می خونه و دفعه های بعد چرت و پرت چاپ می کنه ... چرا ؟ مگه یک بار باز کردن فایل کافی نیست ؟(اخه نبستمش که !)
یک سوال دیگه این که چرا عدد رو درست از تو فایل می خونه اما name رو فقط حرف اولش رو می خونه ... اگه به خاطر اینه که char تعریف کردم ... پس چی باید تعریف کنم ؟