使用 ifstream 和 ofstream 与使用 cin 和 cout 有什么区别?

5

我之前了解过fstream,等等的知识。它说ifstream用于从文件中读取数据,而ofstream用于写入数据。我想知道,如果你可以使用cin.getline()获取数据并使用cout <<打印这些数据,那么使用ifstream/ofstream的本质是什么?


希望你不会觉得使用std::cout将程序输出到文件比stdout更容易。 - chris
这与文件有关,而不是打印数据,请查看此文章:http://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm - user4375224
std::cinstd::cout 通常连接到另一个正在运行的程序(通常是终端),但 std::ifstreamstd::ofstream 则从文件中读取和写入。 - Galik
我对“文件”这个词感到相当困惑。我注意到它使用了ofstream(“sample.txt”),其中sample.txt只是一个类似于变量的东西,不是吗?我是否可以使用保存在桌面上的示例文件作为sample.txt的替代品?例如:ofstream(C://Desktop/MySampleText.txt)之类的东西。我是c ++的新手。 - Sniper30
2个回答

10

ifstream:文件输入流类
ofstream:文件输出流类

那么什么是文件呢?
文件是用来储存信息的资源,例如文本文件。

现在,让我们看一个解释ofstream的例子。
看下面的代码:

#include <iostream>
#include <fstream>

using namespace std;

int main () {
     ofstream myfile;
     myfile.open ("example.txt");
     myfile << "Writing this to a file.\n";
     myfile.close();
     return 0;
}

在这里,我们将一些内容写入文件。可以说是写入信息。

现在,cin/coutifstream/ofstream之间有什么区别呢?

cin是类istream的对象,而cout是类ostream的对象。事实上,我们可以像使用cincout一样使用文件流,唯一的区别是我们必须将这些流与物理文件关联起来。可以认为cin/cout是用于标准输入/输出的istream/ostream的一部分。

希望它会对你有所帮助。

欲了解更多信息,请查看此链接:文件的输入/输出


我可以在myfile.open中使用链接吗?例如,我将一个名为Sample.docx的MS Word文件保存在桌面上,我能这样做吗: - Sniper30
myfile.open("C://Desktop/Sample.docx"); - Sniper30
@Sniper30,你必须意识到docx文件不是文本文件,所以不要期望它像文本文件一样运作,但当然你可以操纵它。 - chris

1

Ifstream()

  1. ifstream() 用于输入文件。
  2. ifstream() 是 fstream() 对象,它用于将单个字符、字符串或一组字符输入到文件中。
  3. 它继承了 get()、getline()、read() 等函数...

Ofstream()

  1. ofstream() 用于输出文件。
  2. ofstream() 是 fstream() 对象,它用于从文件中输出单个字符、字符串或一组字符。
  3. 它继承了 put()、write() 等函数...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接