Hello, every one there, I am stuck on a problem..!! Actually, I tried to make a Telephone Dictionary and for this I use the following code, when I am inserting a contact it successfully do this. But when I want to delete a contact then I am not get the expected result.!!!
Suppose, in my contacts.bat file, the following contact list is written:
Anus Mehmood I-10 0567 1244
Khizar Iqbal I-14 0333 068
Zarar Haider I-8 0456 456
Uzair Iqbal I-15 1234 5678
Naqash Mehmood I-16 1234 5678
and I want to delete the contact having first name Khizar and second name Iqbal, then my program do this but after it gives me the following result..!!
Anus Mehmood I-10 0567 1244
Zarar Haider I-8 0456 456
Naqash Mehmood I-16 1234 5678
Naqash Mehmood I-16 1234 5678
i.e., Uzair Iqbal is also removed but Naqash Mehmood is written for the two times!!
and after this if I want to remove the Anus Mehmood contact, them Naqash Mehmood contact is also removed..!!!
As long as I know, the is an error in the following line:
if (strcmp (name1, first_name) != 0 && strcmp(name2, last_name) != 0)
ANY BODY CAN HELP ME, PLEASE...!!! HERE IS MY CODE..!!!
Suppose, in my contacts.bat file, the following contact list is written:
Anus Mehmood I-10 0567 1244
Khizar Iqbal I-14 0333 068
Zarar Haider I-8 0456 456
Uzair Iqbal I-15 1234 5678
Naqash Mehmood I-16 1234 5678
and I want to delete the contact having first name Khizar and second name Iqbal, then my program do this but after it gives me the following result..!!
Anus Mehmood I-10 0567 1244
Zarar Haider I-8 0456 456
Naqash Mehmood I-16 1234 5678
Naqash Mehmood I-16 1234 5678
i.e., Uzair Iqbal is also removed but Naqash Mehmood is written for the two times!!
and after this if I want to remove the Anus Mehmood contact, them Naqash Mehmood contact is also removed..!!!
As long as I know, the is an error in the following line:
if (strcmp (name1, first_name) != 0 && strcmp(name2, last_name) != 0)
ANY BODY CAN HELP ME, PLEASE...!!! HERE IS MY CODE..!!!
#include <iostream> #include <fstream> #include <iomanip> #include <cstring> using namespace std; void delete_record(char first_name[], int first_length, char last_name[], int last_length) { ifstream file1; file1.open("C:\\Users\\Red Prince!\\Desktop\\Contacts.dat"); fstream file2; file2.open("C:\\Users\\Red Prince!\\Desktop\\Contacts2.dat" , ios::app | ios::out); while (!file1.eof()) { char name1[15]; char name2[15]; char address[30]; char cell_Number[13]; char land_line[15]; file1 >> name1 >> name2 >> address >> cell_Number >> land_line; if (strcmp (name1, first_name) != 0 && strcmp(name2, last_name) != 0) { file2 << name1 << " " << name2 << " " << address << " " << cell_Number << " " << land_line << endl; } } file1.close(); file2.close(); remove("C:\\Users\\Red Prince!\\Desktop\\Contacts.dat"); // Delte the orignal file..!! rename("C:\\Users\\Red Prince!\\Desktop\\Contacts2.dat", "C:\\Users\\Red Prince!\\Desktop\\Contacts.dat"); } void get_input(char input[], int length) { cin.getline(input, length); cin.clear(); //cin.ignore(numeric_limits<streamsize>::max(), '\n'); } void insert_contact() { cin.ignore(); cout << "Please Enter Your First Name: "; char first_name[15]; get_input(first_name, 15); cout << "Please Enter Your Last Name: "; char last_name[15]; get_input(last_name, 15); cout << "Please Enter Your Address (Max 30 Characters Long): "; char address[30]; get_input(address, 30); cout << "Please Enter Your Cell Number: "; char cell_Number[13]; get_input(cell_Number, 13); cout << "Please Enter Your Land Line Number: "; char land_line[15]; get_input(land_line, 15); fstream file; file.open("C:\\Users\\Red Prince!\\Desktop\\Contacts.dat", ios::app | ios::in | ios::out); file << first_name << " " << last_name << " " << address << " " << cell_Number << " " << land_line << endl; file.close(); } int main() { cout << "Please Enter a choise: \n" << "1. Insert a contact\n" << "2. Delete a contact\n" << "3. Edit an existing contact (changing or modifying a record)" << "4. Search a contact (and display complete record on screen)\n" << "\ta. Search through first name\n" << "\tb. Search through last name\n" << "\tc. Search through landline\n" << "\td. Search through cell number\n" << "5. Display all contacts that\n" << "\ta. Start with a given letter (e.g., all contacts starting with M)\n" << "\tb. Landline or cell number starting with a particular pattern (e.g., 0300 for cell number, or (042)3518 for landline number)\n" << "6. Sort all contacts with respect to\n" << "\ta. first name\n" << "\tb. last name\n" << "\tc. land line number\n" << "\td. mobile number\n" << "7. Exit\n"; int choise; cin >> choise; switch(choise) { case 1: insert_contact(); break; case 2: { cout << "Please enter first name of the contact: "; char first_name[15]; cin >> first_name; cout << "Please enter second name of the contact: "; char last_name[15]; cin >> last_name; delete_record(first_name, 15, last_name, 15); } } return 0; } //Khizar Iqbal I-14 0333 068 //Anus Mehmood I-8 0332 062