主要是用C++讀寫txt文檔的基本操作,最簡單的寫入和讀出了兩種基本操作
本程序的功能是向text.txt文件寫入字符串"this is a text12"和讀取字符串"this is a test12"
並且將讀取到的字符串存到temp變量(char型變量),且輸出到控制台窗口進行顯示
注意:
當創建ofstream對象之后,可以像操作cout一樣操作這個對象,也就是可以把ofstream的對象當作cout一樣進行輸出。
當創建ifstream對象之后,可以像操作cin一樣操作這個對象,也就是可以把ifstream的對象當作cin一樣進行輸入。
#include <fstream> #include <iostream>
using namespace std; int main() { //寫txt文件
ofstream OutFile("test.txt");//創建一個test.txt文本,並且打開test.txt文件
OutFile << "this is test12!";//把字符串內容寫入文件中
OutFile.close();//關閉test.txt文件 //讀txt文件
ifstream readFile("test.txt"); char temp[1024] = {0}; readFile >> temp;//遇到空格輸出停止,空格后的內容無法輸出,'\0'是截止符號
readFile.getline(temp, 8, 0);//可以輸出空格,遇到delim符號才截至。最后一個參數0表示文本框遇到空字符截止符(ASCII碼為32,文本框不可能有空字符) //不加第三個參數0的時候,表示'\n'為截止符
cout << temp << endl; readFile.close(); system("PAUSE"); return 0; }
#include <iostream> #include <fstream> #include <cassert> #include <string>
//接下來進行逐行讀取
void readTxt(string file) { ifstream infile; infile.open(file.data());//將文件流對象和文件連接起來
assert(infile.is_open()); string s; while(getline(infile, s)) { cout << s << endl; } infile.close(); } //接下來逐個字符讀入(忽略空格和回車)
void readTxt(string file) { ifstream infile; infile.open(file.data());//將文件流對象和文件連接起來
assert(infile.is_open());//若失敗,則輸出錯誤消息,並停止程序運行
char c; while(!infile.eof()) { infile >> c; cout << c << endl; } infile.close();//關閉文件輸入流
} //接下來逐個字符讀入(包括空格與回車)
void readTxt2(string file) { ifstream infile; infile.open(file.data());//將文件流對象和文件連接起來
assert(infile.is_open());//若失敗,則輸出錯誤消息,並終止程序運行
char c; infile >> noskipws; while(!infile.eof) { infile >> c; cout << c << endl; } infile.close();//關閉文件輸入流
}
noskipws介紹
操作符noskipws會令輸入運算符讀取空白符,而不是跳過它們。
為了恢復默認行為,可以使用skipws操作符號。
cin >> noskipws;//設置cin讀取空白符
while(cin >> ch)
cout << ch;
cin >> skipws;/將cin恢復到默認狀態,從而丟棄空白符