c ++文件读入内存

时间:2016-04-24 19:26:36

标签: c++ function

我尝试在程序启动时将文件加载到数组中,以便我可以 修改或搜索它我不知道我的代码是否有效(它没有读取文件)我有文件

中有两本书

我试图调试它,但无法找到代码工作的问题 但它认为load()函数存在问题我不知道是什么

我的代码:

#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>

using namespace std;

struct books{
//identfying books with all needed things
int id, status;
string title, p_name, p_address;
string date;
string aut_name, aut_nationality;
}newbook[10000], aut[10000];
int i = 0;

void load(){
ifstream myfile("books.txt", ios::in);
while (myfile >> newbook[i].id >> newbook[i].title >> newbook[i].p_name >> newbook[i].p_address >> aut[i].aut_name >> aut[i].aut_nationality >> newbook[i].date >> newbook[i].status)
    i++;
}
void search_for_book(){
int temp = 0;
int idx;
cout << "enter the ID of the book you're looking for : ";
cin >> idx;

for (int srh = 0; srh < i; srh++){
    if (newbook[srh].id == idx){
        cout << setw(10) << "book found :" << endl;

        cout << "title :" << newbook[srh].title << endl;
        cout << "publisher name : " << newbook[srh].p_name << endl;
        cout << "publisher address" << newbook[srh].p_address << endl;
        cout << "author name :" << aut[srh].aut_name << endl;
        cout << "author Nationality :" << aut[srh].aut_nationality << endl;
        cout << "publish Date :" << newbook[srh].date << endl;
        cout << "status :" << newbook[srh].status << endl;
        temp++;
        break;
    }

    else
        srh++;
}
if (temp == 0){
    cout << "couldn't find book" << endl << endl;
}

}
int main(){
load();
char choice;
cout << "enter your choice (3)";
cin >> choice;
if (choice == '3'){
    search_for_book();
}

}

注意:*(还有其他功能,如添加新书但不需要写)

*(我不熟悉c ++并不知道如何将文件读入内存但我正在尝试)

这是将数据保存到文件中的代码:

void add_new_book_5(){

int booksnumber;
books newbook[1000], aut[100];
cout << "how many books you want to add ? ";
cin >> booksnumber;
cout << "what books you want to add :" << endl;
d_base.open(path, ios::out | ios::app);
for (int i = 0; i < booksnumber; i++){
    cout << "id please : "; cin >> newbook[i].id;
    cout << "title : ";              cin.ignore();   getline(cin, newbook[i].title);
    cout << "publisher name :";                      getline(cin, newbook[i].p_name);
    cout << "publisher address : ";                  getline(cin, newbook[i].p_address);
    cout << "author" << " name : "; cin.ignore();    getline(cin, newbook[i].aut_name);
    cout << "Nationality : ";                                    getline(cin, newbook[i].aut_nationality);
    cout << "Publish date :";                                        getline(cin, newbook[i].date);
    cout << "How many copies of " << newbook[i].title << " ";       cin >> newbook[i].status;

    system("cls");

    d_base << newbook[i].id << "\ " << newbook[i].title << "\ ";
    d_base << newbook[i].p_name << "\ " << newbook[i].p_address << "\ ";
    d_base << newbook[i].aut_name << "\ " << newbook[i].aut_nationality << "\ ";
    d_base << newbook[i].date << "\ " << newbook[i].status << endl;

}

d_base.close();

cout << setw(76) << "Books Have Been Saved Sucessfully" << endl;

}

0 个答案:

没有答案