30/09/2018, 17:09

Nhập xuất file trong C++

Đề là nhập các thông tin vào file, tìm trong file số điện thoại và in thông tin của người có sđt đó ra mh.
Mình code như trên và thấy cũng ok nhưng khi nhâp 1 số không có trong file thì không thông báo “Don’t have this phone number in database!” như ý muốn?

#include "iostream"
#include "fstream"
#include "cstdlib"

using namespace std;

//Structure thong tin cua 1 nguoi
typedef struct{
    char name[20], job[20], address[100];
    unsigned long phone;
}Info;

int main(){

    ofstream os("INPUT.DAT");
    Info *p = new Info[3];
    if (!os){
        cout << "Can't open file";
        exit(1);
    }
    //Ghi thong tin vao file 
    for (int i = 0 ; i < 3; i++){
        cout << "NAME: " ;     cin.getline((p+i)->name, 20);
        cout << "ADDRESS: " ;  cin.getline((p+i)->address, 100);
        cout << "JOB: " ;      cin.getline((p+i)->job, 20);
        cout << "PHONE: " ;    cin >> (p+i)->phone; cin.ignore();
        os << (p+i)->name << "	" << (p+i)->phone << "	" << (p+i)->address << "	" << (p+i)->job <<endl;
    }
    os.close();

    //Tim kiem 1 sdt va in thong tin cua nguoi do
    ifstream is("INPUT.DAT");
    unsigned long tel;
    cout << "Find phone number: ";
    cin >> tel;
     int i = 0;
    while (!is.eof()){
        is >> (p+i)->name >> (p+i)->phone >> (p+i)->address >> (p+i)->job ;
        if((p+i)->phone == tel){
            cout << (p+i)->name << "	" << (p+i)->phone << "	" << (p+i)->address << "	" << (p+i)->job <<endl;
            exit(1);
        }
        i++;
    }
    cout << "Don't have this phone number in database!" ;
    
    delete []p;
    return 0;
}

Mọi người giải thích cho em với

Trịnh Minh Cường viết 19:21 ngày 30/09/2018
#include "iostream"
#include "fstream"
#include "cstdlib"

using namespace std;

//Structure thong tin cua 1 nguoi
typedef struct{
    char name[20], job[20], address[100];
    unsigned long phone;
}Info;

int main(){

    ofstream os("INPUT.DAT");
    Info *p = new Info[3];
    if (!os){
        cout << "Can't open file";
        exit(1);
    }
    //Ghi thong tin vao file 
    for (int i = 0 ; i < 3; i++){
        cout << "NAME: " ;     cin.getline((p+i)->name, 20);
        cout << "ADDRESS: " ;  cin.getline((p+i)->address, 100);
        cout << "JOB: " ;      cin.getline((p+i)->job, 20);
        cout << "PHONE: " ;    cin >> (p+i)->phone; cin.ignore();
        os << (p+i)->name << "\t" << (p+i)->phone << "\t" << (p+i)->address << "\t" << (p+i)->job <<endl;
    }
    os.close();

    //Tim kiem 1 sdt va in thong tin cua nguoi do
    ifstream is("INPUT.DAT");
    unsigned long tel;
    cout << "Find phone number: ";
    cin >> tel;
     int i = 0;
    while (!is.eof()){
        is >> (p+i)->name >> (p+i)->phone >> (p+i)->address >> (p+i)->job ;
        if((p+i)->phone == tel){
            cout << (p+i)->name << "\t" << (p+i)->phone << "\t" << (p+i)->address << "\t" << (p+i)->job <<endl;
            exit(1);
        }
        else
        {
        i++;
        }
    }
    cout << "Don't have this phone number in database!" ;
    
    delete []p;
    return 0;
}

Không hiểu sao nhưng khi em thêm vào else{} thì vấn đề được giải quyết

Bài liên quan
0