一、实验目的
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