一、實驗目的
1. 熟悉文件的基本操作;
2. 在類中添加打開文件、保存文件、讀取文件等處理函數;
二、實驗任務
1. 分析完善程序:主函數創建一個文件對象,每次打開文件,在其尾部添加數據。如果文件不存在,則新建該文件。請將空白處需要完善的功能補充完整。
#include <iostream>
#include <fstream> //調用文件類庫文件
using namespace std
int main()
{
std::ofstream fout(“fang.txt”,ios::app); // 使用構造函數創建對象并打開文件
____________________//以另外一種方式創建對象并打開,即調用open函數
fout << "adfwadd" << "," << "\n";
__________________________//在上一句的基礎上輸出“Hello world!”
_________________//關閉文件
return 0;
}
完善后的程序代碼:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
std::ofstream fout("fang.txt", ios::app); // 使用構造函數創建對象并打開文件
if (!fout.is_open()) {
std::cout << "Failed to open file!" << std::endl;
return -1;
}
fout << "adfwadd" << "," << "\n";
fout << "Hello world!" << std::endl; // 在上一句的基礎上輸出“Hello world!”
fout.close(); // 關閉文件
return 0;
}
實驗思考題回答與結果分析:
(1) 程序運行結果:
程序運行結果為向 fang.txt 文件中追加了兩行字符串,分別為 "adfwadd," 和 "Hello world!"
(2) 該程序主要運用.........知識點?編程時需要注意什么?(不要抄襲!)
該程序主要運用文件流操作的知識點。在編程時需要注意,打開文件時需要判斷文件是否成功打開,否則可能會出現寫入失敗的情況。同時,使用完文件后需要及時關閉文件,否則可能會導致文件被其他程序占用或者文件內容不完整等問題。
2、分析完善程序:主函數創建一個文件對象,打開文件后向文件寫入一個字符串。請將空白處需要完善的功能補充完整。
#include <iostream>
#include <fstream> //調用文件類庫文件
using namespace std
int main()
{
const char *url ="http://c.biancheng.net/cplus/";
fstream fs; //創建一個 fstream 類對象
fs.open("test.txt", ios::out); //將 test.txt 文件和 fs 文件流關聯
_____________________//向test.txt文件中寫入 url 字符串
fs.close(); //關閉文件
return 0;
}
完善后的程序:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
const char* url = "http://c.biancheng.net/cplus/";
fstream fs; // 創建一個 fstream 類對象
fs.open("test.txt", ios::out); // 將 test.txt 文件和 fs 文件流關聯
if (!fs.is_open()) {
std::cout << "Failed to open file!" << std::endl;
return -1;
}
fs << url; // 向 test.txt 文件中寫入 url 字符串
fs.close(); // 關閉文件
return 0;
}
實驗思考題回答與結果分析:
(1) 程序運行結果:
程序運行結果為向 test.txt 文件中寫入了字符串 "http://c.biancheng.net/cplus/"。
(2) 該程序主要運用.........知識點?編程時需要注意什么?(不要抄襲!)
該程序主要運用文件流操作的知識點。在編程時需要注意,打開文件時需要判斷文件是否成功打開,否則可能會出現寫入失敗的情況。同時,使用完文件后需要及時關閉文件,否則可能會導致文件被其他程序占用或者文件內容不完整等問題。另外,需要注意文件流的打開模式,例如 ios::out 表示輸出模式,如果需要讀取文件則需要使用 ios::in 模式。
3、分析完善程序:主函數創建一個文件對象,打開文件后從文件讀取信息。請將空白處需要完善的功能補充完整。
void main()
{
int a, b;
char c;
ifstream fin(“data.txt”); //創建輸入流對象fin與讀取文件data.txt關聯
if (!fin)
{ // 如果讀取失敗,打印fail
cerr << "fail" << endl;
return -1;
}
fin >> a >> c>>b; //從文件讀取的東西寫入給變量
___________________________; //將變量的值輸出到顯示器上
fin.close(); //關閉文件
a++; b++;
cout << "change a = " << a << endl; //將變化后的變量值輸出到顯示器上
cout << "change b = " << b << endl;
__________________; //創建輸出流對象fout與data2.txt文件關聯
__________________; //將變量的值寫入文data2.txt件
fout.close(); //關閉文件
}
完善后的程序:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int a, b;
char