精华内容
下载资源
问答
  • C++ ifstream

    2020-02-10 12:20:05
    C++ ifstreamstd::ifstreamconstructorcheck statuscloseTensorRT的例子參考連結 std::ifstream 參考std::ifstream: Input stream class to operate on files. Objects of this class maintain a filebuf object...

    std::ifstream

    參考std::ifstream

    Input stream class to operate on files.
    
    Objects of this class maintain a filebuf object as their internal stream buffer, which performs input/output operations on the file they are associated with (if any).
    
    File streams are associated with files either on construction, or by calling member open.
    

    std::ifstream這個類別的物件會對與它關聯的檔案進行操作。

    constructor

    其建構子的簽名:

    /*default (1)*/	
    ifstream();
    /*initialization (2)	*/
    explicit ifstream (const char* filename, ios_base::openmode mode = ios_base::in);
    explicit ifstream (const string& filename, ios_base::openmode mode = ios_base::in);
    /*copy (3)	*/
    ifstream (const ifstream&) = delete;
    /*move (4)	*/
    ifstream (ifstream&& x);
    

    在此著重關注第(2)種初始化方式:第一個參數為檔名,第二個參數為檔案開啟模式。

    可選的開啟模式包括std::ios_base::openmode的五個型別:inoutbinaryateapptrunc。這些模式可以用bitwise OR operator(|)來進行組合。

    check status

    參考ifstream: check if opened successfully,為了檢查檔案是否開啟成功,我們可以使用對std::ifsstreamoverload過的!運算子。

    close

    std::ifstream::close函數的簽名:

    void close();
    

    其作用為:

    Close file
    Closes the file currently associated with the object, disassociating it from the stream.
    

    即關閉檔案,取消它與input stream的關聯。

    TensorRT中的例子

    TensorRT/parsers/caffe/caffeParser/readProto.h的函數readBinaryProto中。

    創建ifstream物件:

    std::ifstream stream(file, std::ios::in | std::ios::binary);
    

    注意到這裡使用的std::iosstd::ios_base的子類別。

    檢查檔案是否開啟成功:

    if (!stream)
    {
        RETURN_AND_LOG_ERROR(false, "Could not open file " + std::string(file));
    }
    

    關閉檔案:

    stream.close();
    

    參考連結

    std::ifstream

    ifstream: check if opened successfully

    展开全文
  • c++中ifstream于ofstream

    2021-05-08 15:22:48
    1 c++中有stream类,是所有I/O的基础,有两个重要的运算符<<和>> 1.1 <<:向流输出数据,就是cout<<中的这个运算符,将数据等输出到显示器上 1.2 >>:从流输入数据,就是cin>>...

    1 c++中有stream类,是所有I/O的基础,有两个重要的运算符<<和>>

    1.1  <<:向流输出数据,就是cout<<中的这个运算符,将数据等输出到显示器上

    1.2  >>:从流输入数据,就是cin>>中的运算符,从输入设备获得数据流

    2 ofstream:数据流从内存到硬盘

       ifstream: 数据流从硬盘到内存

     

    3

    展开全文
  • C++ ifstream 是一种常用的打开文件的方式,使用方式: void Void_data_read () { ifstream ifstream_myfile ( "E:\\Python_Work\\Lithology\\Lithology.txt" ); if ( !ifstream_myfile.is_open() ) { cout &...

    C++ 中 ifstream 是一种常用的打开文件的方式,使用方式:

    void Void_data_read ()
    {
        ifstream ifstream_myfile ( "E:\\Python_Work\\Lithology\\Lithology.txt" );
        if ( !ifstream_myfile.is_open() ) {
            cout << "未成功打开文件!" << endl;
            exit;
        }
        else {
            string string_currentLine;
            while ( getline( ifstream_myfile, string_currentLine ) ) {
                cout << string_currentLine << endl;
            }
        }
        return;
    }
    

    在第三行语句的括号中需要给出文件路径。常用方式:

    1. 直接在括号中写出文件路径并用双引号括起来,注意文件夹之间的反斜杠要写两个
    2. 在函数最前面 #define 路径值,如下:
    #define path "E:\\Python_Work\\Lithology\\Lithology.txt"
    void Void_data_read ()
    {
        ifstream ifstream_myfile ( path );
        if ( !ifstream_myfile.is_open() ) {
            cout << "未成功打开文件!" << endl;
            exit;
        }
        else {
            string string_currentLine;
            while ( getline( ifstream_myfile, string_currentLine ) ) {
                cout << string_currentLine << endl;
            }
        }
        return;
    }
    

    这种方式可以在函数中节省代码量,更易于修改路径。

    1. 将文件路径名称写入 char 型字符数组中,并将字符数组作为参数传递
    void Void_data_read ( char filePath[] )
    {
        ifstream ifstream_myfile ( filePath );
        if ( !ifstream_myfile.is_open() ) {
            cout << "未成功打开文件!" << endl;
            exit;
        }
        else {
            string string_currentLine;
            while ( getline( ifstream_myfile, string_currentLine ) ) {
                cout << string_currentLine << endl;
            }
        }
        return;
    }
    
    int main()
    {
    	char filePath[80] = path;
    	Void_data_read( filePath );
    	return 0;
    }
    

    如果采用 string 类型作为参数传递文件路径则会报错,如下:

    void Void_data_read ( string filePath )
    {
        ifstream ifstream_myfile ( filePath );
        if ( !ifstream_myfile.is_open() ) {
            cout << "未成功打开文件!" << endl;
            exit;
        }
        else {
            string string_currentLine;
            while ( getline( ifstream_myfile, string_currentLine ) ) {
                cout << string_currentLine << endl;
            }
        }
        return;
    }
    
    int main()
    {
    	string str_filePath = path;
    	Void_data_read( str_filePath );
    	return 0;
    }
    

    这种方式会报错:
    [Error] no matching function for call to ‘std::basic_ifstream::basic_ifstream(std::string&)’

    展开全文
  • C++ ifstream读取txt文件内容

    千次阅读 2020-11-14 10:32:19
    2.在一棵由包含4、5、6等等一系列整数结点构成的二叉搜索树,如果结点4和6在树的同一层,那么可以断定结点5一定是结点4和6的父亲结点。 (3分) TF 3.二叉搜索树的查找和折半查找的时间复杂度相同。 (2分) TF 4....

    头文件

    #include <iostream>
    #include <fstream>
    #include <cassert>
    #include <string>
    

    把txt文件放在当前目录下

    1、逐行读入文件

    void readTxt(string file)
    {
        ifstream infile; 
        infile.open(file.data());   //将文件流对象与文件连接起来 
        assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 
    
        string s;
        while(getline(infile,s))
        {
            cout<<s<<endl;
        }
        infile.close();             //关闭文件输入流 
    }
    

    2、逐个字符读入(忽略空格与回车)

    void readTxt(string file)
    {
        ifstream infile; 
        infile.open(file.data());   //将文件流对象与文件连接起来 
        assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 
    
        char c;
        while (!infile.eof())
        {
            infile >> c;
            cout<<c<<endl;
    
        }
        infile.close();             //关闭文件输入流 
    }
    

    3、逐个字符读入(包括空格与回车)

    void readTxt(string file)
    {
        ifstream infile; 
        infile.open(file.data());   //将文件流对象与文件连接起来 
        assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 
    
        char c;
        infile >> noskipws;
        while (!infile.eof())
        {
            infile>>c;
            cout<<c<<endl;
    
        }
        infile.close();             //关闭文件输入流 
    }
    

    示例代码

    在这里插入图片描述

    #include<stdio.h>	
    #include <iostream>
    #include <fstream>
    #include <cassert>
    #include <string>
    
    using namespace std;
    // 一行行读
    void readTxt(string file)
    {
    	ifstream infile;
    	infile.open("data.txt");   //将文件流对象与文件连接起来 
    	assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 
    
    	string s;
    	while (getline(infile, s))
    	{
    		cout << s << endl;
    	}
    	infile.close();             //关闭文件输入流 
    }
    // 一字符字符读  忽略空格与回车
    void readTxt2(string file)
    {
    	ifstream infile;
    	infile.open(file.data());   //将文件流对象与文件连接起来 
    	assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 
    
    	char c;
    	while (!infile.eof())
    	{
    		infile >> c;
    		cout << c << endl;
    
    	}
    	infile.close();             //关闭文件输入流 
    }
    // 一字符字符读  不忽略空格与回车
    void readTxt3(string file)
    {
    	ifstream infile;
    	infile.open(file.data());   //将文件流对象与文件连接起来 
    	assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 
    
    	char c;
    	infile >> noskipws;
    	while (!infile.eof())
    	{
    		infile >> c;
    		cout << c << endl;
    
    	}
    	infile.close();             //关闭文件输入流 
    }
    
    int main()
    {
    
    	readTxt("data.txt");
    	readTxt2("data.txt");
    	readTxt3("data.txt");
    
    	return 0;
    }
    
    展开全文
  • C++ ifstream eof()的使用

    千次阅读 2020-07-06 20:42:07
    C++ ifstream eof() 的使用 eof() 的使用方法1 ifstream.eof() 读到文件结束符时返回true。 大家可能有一个误区,认为读到文件结束符就是读到文件的最后一个字符。 其实不然,文件结束符是文件最后一个字符的下一个...
  • C++ ifstream ofstream

    千次阅读 2015-08-24 15:56:54
    C++文件读写详解(ofstream,ifstream,fstream)     1. 概述: Input/Output library C++输入输出流的继承关系如图: 1. #include  ...3. ifstream //文件读操作,存储设备读区到内存 
  • TITLE:因为不经常用这两个...fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。 ifstream -- 从已有的文件读 ofstream -- 向文件写内容 fstream -- 打开文件供读写 2.文件打开模式: ios...
  • 前文说过,ifstream是继承于istream,ofstream是继承于ostream,fstream是继承于iostream类,而他们使用的缓冲区类是filebuf。 关于这些类之间的关系,有兴趣可以去查看我之前的文章: c++标准输入输出流关系梳理 1. ...
  • c++中一次读取整个文件的内容的方法: 读取至char*的情况 std::ifstream t; int length; t.open("file.txt"); // open input file t.seekg(0, std::ios::end); // go to the end length = t.tellg(); // ...
  • 注意下面几点,你一定能读取成功!... ifstream reader("D://桌面//编译原理//词法分析表//ReserveTable.txt"); string content; while(reader >> content) Reserve.push_back(content);
  • C++中ifstream问题

    2010-03-22 22:08:00
     ifstream infile;  if (!infile.open(argv[1])) //这里编译错误  cout;  ...... } 改成 int main(int argc, char *argv[]) {  ifstream infile;  infile.open(argv[1]);  if (!infile) //这里编译正确...
  • 使用ifstream的一般步骤: ifstream ifs; ifs.open(".\\..\\..\\resources\\out_800_600_25.rgba", ios::binary); if (!ifs) { cout << "文件打开失败" << endl; return 0; } int size = 800 ...
  • C++ ifstream eof的思考

    2018-07-04 11:44:15
    std::ifstream input("test.txt"); std::string tmp; while(!input.eof()) { input &gt;&gt; tmp; std::cout &lt;&lt; tmp &lt;&lt; std::endl; } 2.原因: eof判断并不会...
  • C++ifstream出错感悟

    千次阅读 2017-08-19 10:53:44
    编写OpenGL一个示例程序,将顶点着色器和片段着色器放入txt文件,通过ifstream的open函数,打开文件路径来调用,但是一直报错: Microsoft C++ 异常: std::ios_base::failure。 编译了一个测试程序,查看文件...
  • <p style="text-align:center"><img alt="" src="https://img-ask.csdnimg.cn/upload/1622129691338.png" /></p> 如图这行代码,要是直接输入他的路径,则该文件可以打开 ... 换成内容一模一样的字符串...
  • 文件输入输出 头文件fstream定义了三个类型的头文件: 1、ifstream从一个给定文件读取数据 2、ofstream向一个给定文件写入数据 3、fstream可以读写给定文件 ...在C++新标准,文件名既可以是库类型str...
  • // BASIC.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。... ifstream infile; ofstream outfile; char name[20]; char str[30]; cout << "请输入文件" << "\n"; cin >>.
  • C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来) 使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,504
精华内容 13,001
关键字:

c++ifstream

c++ 订阅