Я решил сделать телефонную книгу на c ++ и решил взять из файла имена, адреса и номера.
Поэтому я создал класс с именем contact и объявил открытые переменные name, address и number.
Используя конструктор, я инициализировал их для name = "noname" (строка), number = 0 (int), address = "no address" (строка)
Теперь мое тело main выглядит так:
int main(){
contact *d;
d= new contact[200];
string name,add;
int choice,modchoice;//Variable for switch statement
int phno,phno1;
int i=0;
int initsize=0, i1=0;//i is declared as a static int variable
bool flag=false,flag_no_blank=false;
//TAKE DATA FROM FILES.....
//We create 3 files names, phone numbers, Address and then abstract the data from these files first!
fstream f1;
fstream f2;
fstream f3;
string file_input_name;
string file_input_address;
int file_input_number;
f1.open("./names");
while(f1>>file_input_name){
d[i].name=file_input_name;
i++;
}
initsize=i;
f2.open("./numbers");
while(f2>>file_input_name){
d[i1].phonenumber=file_input_number;
i1++;
}
f3.open("./address");
while(f3>>file_input_address){
d[i1].address=file_input_address;
i1++;
}
теперь, когда я позже ищу конкретную запись по имени, имя отображается правильно, но номер телефона возвращается в качестве значения мусора, а адрес - в качестве "Noaddress"
Я не понимаю, почему это происходит ...
Если вы хотите посмотреть весь код, дайте мне знать ....
Вот как я ищу конкретную запись, которая возвращает имя, если найдено, но возвращает мусор для номера телефона ....
cout<<"\nEnter the name";//Here it is assumed that no two contacts can have same contact number or address but may have the same name.
cin>>name;
int k=0,val;
cout<<"\n\nSearching.........\n\n";
for(int j=0;j<=i;j++){
if(d[j].name==name){
k++;
cout<<k
<<".\t"
<<d[j].name
<<"\t"<<d[j].phonenumber
<<"\t"<<d[j].address
<<"\n\n";
val=j;
}
}
Заранее спасибо