PDA

View Full Version : مبتدی: مشکل جستجو در فایل تکست



raminlich
یک شنبه 15 تیر 1393, 13:49 عصر
سلام به همگی این برنامم 1 که بزنی میره تو قسمته ذخیره که مشکلی نیست ذخیره میشه
ولی 2 که بزنم تو قسمته جستجو اگه دوتا اسم با عدد ذخیره کرده باشم فقط اسم با عدد اولی رو پیدا میکنه ولی وقتی دومی رو میزنم برا جستجو پیدا نمی کنه:ناراحت:
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
void output(float[],int);
int main()
{
ofstream list("list.txt",ios::app);

string name;
int tedad,gheymat,newadd;
cout<<"Enter '1' For Adding:"<<endl;
cout<<"Enter '2' For Accounting:"<<endl;
cin>>newadd;
switch(newadd){
case 1:
//New Adding---------------------------------------------------------------------------//
cout<<"Enter your Stock Name:"<<endl;
cin>>name;
cout<<"Enter your Amount of stock:"<<endl;
cin>>tedad;
list<<name<<' '<<tedad<<" ";
cout<<endl;
break;
//end of Adding------------------------------------------------------------------------//
case 2:
//being of process--------------------------------------------------------------------//
string na; int ted;
cout<<"Enter your Stock Name For Accounting:";
cin>>na;
ifstream list;
list.open("list.txt");
list>>name>>tedad;
if(na==name)
cout<<name<<tedad;
else
cout<<"Error Stock Name was not found!";






}
}

a.r.khoshghalb
یک شنبه 15 تیر 1393, 14:03 عصر
دوست عزیز شما فقط یک بار از تو فایل می خونی!
یعنی در واقع فقط می بینی اولین داده تو فایل اونی هست که می خوای یا نه!
برای سرچ باید تا آخر فایل رو بگردی...
به این صورت :

case 2:
//being of process--------------------------------------------------------------------//
string na; int ted;
cout<<"Enter your Stock Name For Accounting:";
cin>>na;
ifstream list;
list.open("list.txt");
bool found = false;
while (list>>name>>tedad)
{
if(na==name)
{
cout<<name<<tedad;
found = true;
}
}
if (!found)
{
cout<<"Error Stock Name was not found!";
}


حله؟