本文主要是介绍文件IO和 /,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言文件流对象和>>及<<的匹配老搞混,恼火。现在做个了断。以下面这个例子具体分析。
情况描述
ifstream继承了istream,因此可以将ifstream对象作为参数传递给形参为istream的函数。编写一个示例程序验证。
我的错误代码:
/* 程序往文件1中写入字符串"GoodBye" */
#include <iostream>
#include <fstream>using namespace std;void fun(istream & is) {is << "GoodBye" << endl;
}int main()
{ifstream ifs;ifs.open("1");if (!ifs) {cout << "ERROR" << endl;return 1;}else {fun(ifs);}return 0;
}
错误在这里
is << "GoodBye" << endl;
因为ifstream用于读取文件,而我的设想是要往文件中写入数据,应该使用ostream,再搭配操作符<<。
正确代码
/* 程序往文件1中写入字符串"GoodBye" */
#include <iostream>
#include <fstream>using namespace std;void fun(ostream & os) {os << "GoodBye" << endl;
}int main()
{ofstream ofs;ofs.open("1");if (!ofs) {cout << "ERROR" << endl;return 1;}else {fun(ofs);}return 0;
}
总结
使用文件IO流,一定要非常明确用输入还是输出流(流对象代表文件,别搞混),然后确定好对应的操作符(<<还是>>)。
这篇关于文件IO和 /的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!