在C++中,文件主要通过使用fstream头文件中可用的三个类fstream,ifstream,ofstream来处理。
ofstream:要写入文件的流类
ifstream:流类以从文件读取
fstream:流类以读取和写入文件。
现在第一步是打开特定文件进行读取或写入操作。我们可以通过以下方式打开文件
1.创建对象时在构造函数中传递文件名
2.使用开放方法
例如
Open File by using constructor
ifstream (const char* filename, ios_base::openmode mode = ios_base::in);
ifstream fin(filename, openmode) by default openmode = ios::in
ifstream fin(“filename”);
Open File by using open method
Calling of default constructor
ifstream fin;
fin.open(filename, openmode)
fin.open(“filename”);
模式:
Member Constant | Stands For | Access |
---|---|---|
in * | input | File open for reading: the internal stream buffer supports input operations. |
out | output | File open for writing: the internal stream buffer supports output operations. |
binary | binary | Operations are performed in binary mode rather than text. |
ate | at end | The output position starts at the end of the file. |
app | append | All output operations happen at the end of the file, appending to its existing contents. |
trunc | truncate | Any contents that existed in the file before it is open are discarded. |
默认打开模式:
ifstream | ios::in |
ofstream | ios::out |
fstream | ios::in | ios::out |
问题陈述:用C++读写文件。
例子:
Input :
Welcome in GeeksforGeeks. Best way to learn things.
-1
Output :
Welcome in GeeksforGeeks. Best way to learn things.
下面是使用ifsream&ofstream类的实现。
C++
/* File Handling with C++ using ifstream & ofstream class object*/
/* To write the Content in File*/
/* Then to read the content of file*/
#include
/* fstream header file for ifstream, ofstream,
fstream classes */
#include
using namespace std;
// Driver Code
int main()
{
// Creation of ofstream class object
ofstream fout;
string line;
// by default ios::out mode, automatically deletes
// the content of file. To append the content, open in ios:app
// fout.open("sample.txt", ios::app)
fout.open("sample.txt");
// Execute a loop If file successfully opened
while (fout) {
// Read a Line from standard input
getline(cin, line);
// Press -1 to exit
if (line == "-1")
break;
// Write line in file
fout << line << endl;
}
// Close the File
fout.close();
// Creation of ifstream class object to read the file
ifstream fin;
// by default open mode = ios::in mode
fin.open("sample.txt");
// Execute a loop until EOF (End of File)
while (fin) {
// Read a Line from File
getline(fin, line);
// Print line in Console
cout << line << endl;
}
// Close the file
fin.close();
return 0;
}
C++
/* File Handling with C++ using fstream class object */
/* To write the Content in File */
/* Then to read the content of file*/
#include
/* fstream header file for ifstream, ofstream,
fstream classes */
#include
using namespace std;
// Driver Code
int main()
{
// Creation of fstream class object
fstream fio;
string line;
// by default openmode = ios::in|ios::out mode
// Automatically overwrites the content of file, To append
// the content, open in ios:app
// fio.open("sample.txt", ios::in|ios::out|ios::app)
// ios::trunc mode delete all conetent before open
fio.open("sample.txt", ios::trunc | ios::out | ios::in);
// Execute a loop If file successfully Opened
while (fio) {
// Read a Line from standard input
getline(cin, line);
// Press -1 to exit
if (line == "-1")
break;
// Write line in file
fio << line << endl;
}
// Execute a loop untill EOF (End of File)
// point read pointer at beginning of file
fio.seekg(0, ios::beg);
while (fio) {
// Read a Line from File
getline(fio, line);
// Print line in Console
cout << line << endl;
}
// Close the file
fio.close();
return 0;
}
下面是使用fstream类的实现。
C++
/* File Handling with C++ using fstream class object */
/* To write the Content in File */
/* Then to read the content of file*/
#include
/* fstream header file for ifstream, ofstream,
fstream classes */
#include
using namespace std;
// Driver Code
int main()
{
// Creation of fstream class object
fstream fio;
string line;
// by default openmode = ios::in|ios::out mode
// Automatically overwrites the content of file, To append
// the content, open in ios:app
// fio.open("sample.txt", ios::in|ios::out|ios::app)
// ios::trunc mode delete all conetent before open
fio.open("sample.txt", ios::trunc | ios::out | ios::in);
// Execute a loop If file successfully Opened
while (fio) {
// Read a Line from standard input
getline(cin, line);
// Press -1 to exit
if (line == "-1")
break;
// Write line in file
fio << line << endl;
}
// Execute a loop untill EOF (End of File)
// point read pointer at beginning of file
fio.seekg(0, ios::beg);
while (fio) {
// Read a Line from File
getline(fio, line);
// Print line in Console
cout << line << endl;
}
// Close the file
fio.close();
return 0;
}
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。