C++文件修改和读取的问题,新人求助!
#include<string>
#include<fstream>
using namespace std;
class Book
{
private:
string Bname;
int Bnumber;
public:
Book() {}
void input(int a);
void read(int a);
int getnum();
};
int Book::getnum()
{
return Bnumber;
}
void Book::read(int a)
{
if (a <= 1000)
{
string name2[1000];
int number2[1000];
ifstream fin("book.txt", ios::in | ios::_Nocreate);
if (!fin)
{
cerr << "open error" << endl;
exit(1);
}
for (int i = 0; i < a; i++)
{
fin >> name2[i] >> number2[i];
cout << "书名: " << name2[i] << "编号: " << number2[i] << endl;
}
fin.close();
}
else
cout << "超出该图书馆最大图书容纳量" << endl;
}
void Book::input(int a)
{
if (a <= 1000)
{
string name1[1000];
int number1[1000];
ofstream fout("book.txt", ios::app);
if (!fout)
{
cerr << "open error" << endl;
exit(1);
}
for (int i = 0; i < a; i++)
{
cout << "输入书籍信息(书名,编号)" << endl;
cin >> name1[i] >> number1[i];
fout << name1[i] << " " << number1[i] << endl;
}
fout.close();
}
else
cout << "超出该图书馆最大图书容纳量" << endl;
}
int main()
{
Book b;
b.input(5);
b.read(5);
}
如果用这种方法读取的话,每次都会全部读取出来,如果想比如只读取第二个的书名和编号该怎么写。
我换过用Book b[5],然后程序里读取和写入的函数里的string name[],改成string name;main函数里for循环,能写入,但是读取的时候只是输出第一个的书名和编号。
还有修改的话该怎么修改,如何定位到第二行数据。