C ++中std :: fstream :: X和std :: ios :: X之间的区别

时间:2016-01-11 13:54:15

标签: c++ fstream

我是C ++的新手。我有一个简单的问题要问你,C ++中std::fstream::X and std::ios::X打开文件模式之间的区别是什么?

x可以in, out, ate, trunk, ate

以下是更多示例:

fs.open(filename.c_str(), std::fstream::in | std::fstream::out | std::fstream::app);

VS

fs.open(filename.c_str(), std::ios::in | std::ios::out | std::ios::app);

这两者有什么区别?

请不要以复杂的方式回答,因为我是C ++的初学者。

3 个答案:

答案 0 :(得分:2)

引用Input/Output in File

  

默认模式参数

     

ofstream:ios :: out

     

ifstream:ios :: in

     

fstream:ios :: in | IOS ::出

     

对于ifstream和ofstream类,即使不包含它们的模式作为第二个参数传递给open()成员函数,也会自动并分别假设ios :: in和ios :: out。

$("#PrintPDF").click(function () { var url = "_PrintPDFPartialView"; $.ajax({ url: url, type: 'POST', data: { id: $("#StId").val() }, success: function (result) { var $result = $(result); kendo.drawing.drawDOM($result) .then(function (group) { // Render the result as a PDF file kendo.drawing.pdf.saveAs(group, "test.pdf"); }).done(function (data) { }, )}; }); 继承自std::fstream,根据此page

从文件中读取时,我更喜欢使用std::ios标志,因为让编程接口知道你将使用它的目的是一个很好的编程习惯。

答案 1 :(得分:0)

没有区别。 std::fstream::X继承自std::ios,因此与std::ios::X的值相同。

答案 2 :(得分:0)

爱丽丝有一个儿子鲍勃。他们都有相同的头发颜色 - 棕色,让我们说。现在,有人问你:"他们家的头发颜色是什么?"你可以说 Alice的 Bob&#39> :它是一样的。

你知道这点吗?虽然颜色相同,但鲍勃已经继承了她的母亲。它与get '/articles/1'std::ios::in相同 - 它是相同的值,因为它们具有继承关系,但它是他们自己的"值因为它们不是同一类型(同样,Alice和Bob不是同一个人)。