Я создал счет класса для выполнения таких операций, как добавление, просмотр и поиск записи из двоичного файла. В функции поиска я не могу получить строку в выводе. Я новичок в C ++ и использую Code :: Blocks.
#include<iostream>
#include<fstream>
using namespace std;
class bill{
string name;
unsigned long long int phone_no;
unsigned int payment;
unsigned short int dial_code;
void input_data();
inline void show_data();
public:
bill(){
name = "NULL";
payment = 0;
phone_no = 0;
dial_code = 91;
}
void add();
void view();
void Search();
};
inline void bill::show_data(){
cout<<"\nName: "<<name<<"\nPhone Number: +"<<dial_code<<" "<<phone_no<<"\nPayment: "<<payment<<endl;
}
void bill::Search(){
unsigned long long int phone;
cout<<"Enter Phone Number: ";
cin>>phone;
fstream f;
bill temp;
f.open("data.txt", ios::binary | ios::in);
while(f.read( (char*)&temp, sizeof(temp) ) )
if( phone == temp.phone_no )
temp.show_data();
f.close();
}
int main(){
bill b;
b.Search();
return 0;
}
Ожидаемый вывод:
Enter Phone No.: 123456789
Name: Henry Johnson
Phone No.: 123456789
Payment: 4078
Реальный Выход:
Enter Phone No.: 123456789
Name: hnsn Ywg/jl?
Phone No.: 123456789
Payment: 4078