为什么这个程序不能保存名字啊?
程序代码:
#include <iostream> #include <string> #include <fstream> //定义一个类 class File { public: std::string neirong; // std::string speaker; // std::ofstream fileoutput; //定义一个文件型变量, std::ifstream outfile; //定义一个文件型变量, File(); //结构器 ~File();//析构器 void infile();//输入的内容保存到变量中。 void inspeakerfile();//作者保存到变量中。 bool write();//将内容和作者保存到文件中。 void read();//读取文件内容。 }; void File::read() { outfile.open("1.txt"); if(outfile != 0) { char x; while (outfile >> x) { std::cout<<x; } } } File::File() { fileoutput.open("1.txt",std::ios::app); } File::~File() { fileoutput.close(); } void File::infile() { std::getline(std::cin,neirong); } void File::inspeakerfile() { std::getline(std::cin,speaker); } bool File::write() { if(fileoutput.is_open()) { fileoutput<<neirong<<"|"<<speaker<<"\n"; return true; } else { return false; } } void warning() { std::cout<<"\n1写入信息\n2读取文件信息\n3退出!程序\n"; } int main() { int a; File readwirtefile; for(;;) { warning(); std::cin>>a; switch(a) { case 1: std::cout<<"请写一句名言!:\n"; readwirtefile.infile(); std::cout<<"请写名言的作者!:\n"; readwirtefile.inspeakerfile(); if(readwirtefile.write()) { std::cout<<"成功写入文件!\n"; } else { std::cout<<"写入文件失败!\n"; } break; case 2: readwirtefile.read(); break; case 3: exit(1); } } return 0; }
[ 本帖最后由 a382793896 于 2012-2-20 22:56 编辑 ]