簡體   English   中英

用 ofstream 替換 ifstream 沒有效果

[英]replacing ifstream with ofstream doesn't have an effect

在這段代碼中:

//Program To Read Words Separated By White Space
#include<iostream>
#include<fstream>
#include<string>


int main()
{
    std::string s;

    std::ifstream f;
    f.open("file.txt",std::ios::in);

    std::cin.rdbuf(f.rdbuf());

    while(std::cin>>std::skipws>>s)
        std::cout<<s<<'\n';
    return 0;
}

即使ifstreamofstream替換,代碼也會表現出相同的行為 - 為什么會發生這種情況? 使用輸出流對象以讀取模式打開文件是否應該有任何錯誤?

fstreamofstream之間幾乎唯一的區別是ofstream在打開文件之前添加out選項。
也就是說,您的流在兩個方向上都是開放的。

您可能會爭辯說這是一個錯誤,但鑒於類層次結構,這並不容易修復。

也就是說,你根本不應該為ifstreamofstream指定任何方向,而是寫

std::ifstream f;
f.open("file.txt");

或者,更地道的,

std::ifstream f("file.txt");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM