无法在文件中写入数据,在程序C ++中没有错误 [英] Cannot write the data in the file, no error in the program C++
本文介绍了无法在文件中写入数据,在程序C ++中没有错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法使用这些指针变量在类中写入数据。在程序中没有错误,但是没有数据写在文件上。
有人告诉我,我做错了什么。
I cannot write data on a file with these pointer variables in the class. there is no error in the program but no data is written on the file. kindly someone tell me that where i am doing something wrong.
#include <iostream.h>
#include <fstream.h>
class studentinfo
{
private:/*Creating Private Data Members */
char* VUID;
char* campusID;
char* Studentname;
char* Fathername;
public:
void Storefile();/* Function to Store Data in the File*/
char Display();/*Function to Read and then Display Data from the File*/
studentinfo(char*, char*, char*, char*);/*Constructor to initialize Data Members*/
~studentinfo();
};
/* Constructor Defined Here*/
studentinfo::studentinfo(char* VUID, char* campusID, char* Studentname, char* Fathername)
{
cout << "Parameterized Contructor is Called" << endl << endl;
}
/*Destructor Defined Here*/
studentinfo::~studentinfo()
{
cout << "Destructor Called for destruction of the object" << endl;
system("pause");
}
/*Function to Store Data in the File Defined here*/
void studentinfo::Storefile()
{
ofstream re;
re.open("record.txt");
if(!re)/*Error Checking Mechanism*/
{
cout<<"Error Reading File"<<endl;
}
re << VUID << endl << campusID << endl << Studentname << endl << Fathername << endl;/*Using data members to Store data in the File*/
cout << "All the Data Members are Stored in a File" << endl << endl;
re.close();
}
/*Function to Read and then Display the data in the File is definde here */
char studentinfo::Display()
{
char output[100];/*Array to store and display the data*/
ifstream reh;
reh.open("record.txt");
if(!reh)
{
cout << "Error Reading File" << endl;
}
cout << "Following is My Data" << endl << endl;
while(!reh.eof()){
reh.getline(output, 100, '\n');/*Reading the data and storing it in the 'output' array line by line*/
cout << output << endl;
}
reh.close();
}
/*Main Function starting here*/
main()
{
studentinfo s1("mc130202398", "PMTN08", "Rehan Shahzad Siddiqui","Rizwan Ali Siddiqui");/*Object Created and Initialized by constructor calling*/
s1.Storefile();/*Function Call*/
s1.Display();/*Function Call*/
system("pause");
}
推荐答案
的点数:
- 添加
- 使用
std :: string $ /www.parashift.com/c++-faq/init-lists.htmlrel =nofollow>使用构造函数初始化列表设置成员变量
- 替换不可靠的
eof()
检查
- Removes the need to add
using namespace std;
- Uses
std::string
for thestudentinfo
member variables as per David Schwartz's recommendation - Uses a constructor initialisation list to set member variables
- Replaces the unreliable
eof()
check
如有任何其他问题,请与我们联络。
Let me know if you have any further questions.
#include <iostream>
#include <fstream>
#include <string>
class studentinfo
{
private:/*Creating Private Data Members */
std::string m_VUID;
std::string m_campusID;
std::string m_Studentname;
std::string m_Fathername;
public:
void Storefile();/* Function to Store Data in the File*/
void Display();/*Function to Read and then Display Data from the File*/
studentinfo(std::string, std::string, std::string, std::string);/*Constructor to initialize Data Members*/
~studentinfo();
};
/* Constructor Defined Here*/
studentinfo::studentinfo(std::string VUID, std::string campusID, std::string Studentname, std::string Fathername)
: m_VUID(VUID)
, m_campusID(campusID)
, m_Studentname(Studentname)
, m_Fathername(Fathername)
{
std::cout << "Parameterized Contructor is Called" << std::endl << std::endl;
}
/*Destructor Defined Here*/
studentinfo::~studentinfo()
{
std::cout << "Destructor Called for destruction of the object" << std::endl;
}
/*Function to Store Data in the File Defined here*/
void studentinfo::Storefile()
{
std::ofstream re;
re.open("record.txt");
if(!re)/*Error Checking Mechanism*/
{
std::cout << "Error opening file" << std::endl;
}
// Using data members to store data in the file
re << m_VUID.c_str() << std::endl;
re << m_campusID.c_str() << std::endl;
re << m_Studentname.c_str() << std::endl;
re << m_Fathername.c_str() << std::endl;
std::cout << "All the data members are stored in a file" << std::endl << std::endl;
re.close();
}
/* Function to read and then display the data in the file is defined here */
void studentinfo::Display()
{
std::string in;/*Array to store and display the data*/
std::ifstream reh("record.txt");
if(!reh)
{
std::cout << "Error Reading File" << std::endl;
}
std::cout << "Following is My Data" << std::endl << std::endl;
while(std::getline(reh, in))
{
std::cout << in << std::endl;
}
reh.close();
}
/* Main Function starts here*/
void main()
{
// Object created and initialised by calling constructor
studentinfo s1("mc130202398", "PMTN08", "Rehan Shahzad Siddiqui","Rizwan Ali Siddiqui");
s1.Storefile(); /*Function Call*/
s1.Display(); /*Function Call*/
system("pause");
}
这篇关于无法在文件中写入数据,在程序C ++中没有错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文