C++以只读方式打开文件

标签 c++ file-io

我写了一个程序,它打开一个文件然后逐行显示它的内容(文本文件)

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main (int argc, char* argv[])
{
    string STRING;        
    ifstream infile;    
    infile.open(argv[1]);   
    if (argc != 2)  
    {
        cout << "ERROR.\n";
        return 1;
    }
    if(infile.fail())
    {
        cout << "ERROR.\n";
        return 1;
    }
    else
    {
        while(!infile.eof())
        {
            getline(infile,STRING); 
            cout<<STRING + "\n"; 
        }   
        infile.close(); 
        return 0; 
    }
}

我需要添加什么才能使文件只读?

(infile.open(argv[1]) 是我猜测的地方)

最佳答案

ifstream 类仅供阅读,问题已解决。另外,您真的是想使用 argv[1] 检查 argcafter 吗?

另一方面,当您使用 fstream 时,您需要指定打开文件的方式:

fstream f;
f.open("file", fstream::in | fstream::out); /* Read-write. */

关于C++以只读方式打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8255935/

相关文章:

c++ - openCV中的掩蔽

C高效读取20000000行文件的方法

java - Android 应用程序创建不在 Activity 中的内部文件

c++ - 条件编译和非类型模板参数

c++ - 如何使用 CMake 将 NMake 从 VS9 切换到 VS10

c++ - 编译器认为我构造的 MatrixXd 是函数而不是成员

c++ - 为什么它不能正常工作,Numeric_limits

rust - 返回 Result<Cow<[u8]>> 而不是 Result<Vec<u8>>

通过C函数创建并返回文件

c++ - 如何加速 ifstream 转换为 float