c++ - fstream ifstream 我不明白如何将数据文件加载到我的程序中

标签 c++ fstream ifstream ofstream

我的教授非常聪明,但希望像我这样的完全菜鸟只知道如何编程 .我不明白 fstream 函数是如何工作的。

我将有一个包含三列数据的数据文件。我将不得不用对数来确定每行数据代表的是圆形、矩形还是三角形——这部分很容易。我不明白的部分是 fstream 函数是如何工作的。

我想我:

#include < fstream > 

那我应该声明我的文件对象吗?

ifstream Holes;

然后我打开它:

ifstream.open Holes; // ?

我不知道正确的语法是什么,也找不到简单的教程。一切似乎都比我的技能可以处理的更高级。

此外,在我读入数据文件后,将数据放入数组的正确语法是什么?

我会声明一个数组吗? T[N]cinfstream 对象 Holes 放入其中?

最佳答案

基本 ifstream 用法:

#include <fstream>   // for std::ifstream
#include <iostream>  // for std::cout
#include <string>    // for std::string and std::getline

int main()
{
    std::ifstream infile("thefile.txt");  // construct object and open file
    std::string line;

    if (!infile) { std::cerr << "Error opening file!\n"; return 1; }

    while (std::getline(infile, line))
    {
        std::cout << "The file said, '" << line << "'.\n";
    }
}

让我们更进一步,假设我们要根据某种模式处理每一行。我们为此使用字符串流:

#include <sstream>   // for std::istringstream

// ... as before

    while (std::getline(infile, line))
    {
        std::istringstream iss(line);
        double a, b, c;

        if (!(iss >> a >> b >> c))
        {
            std::cerr << "Invalid line, skipping.\n";
            continue;
        }

        std::cout << "We obtained three values [" << a << ", " << b << ", " << c << "].\n";
    }

关于c++ - fstream ifstream 我不明白如何将数据文件加载到我的程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260725/

相关文章:

c++ - 如何将一个文件中的单词与另一个 C++ 文件中的单词列表进行比较?

C++如何读取具有给定偏移量的对象?

c++ - 将 2 个结构数组的信息输出到一个文件中

c++ - 系统 ("c:\\sample\\startAll.bat") 由于工作目录而无法运行?

C++ 二叉搜索树创建段错误

c++ - 将文本从文件加载到二维数组中 (C++)

c++ - 如何通过c++文件函数读写8位整数单元形式的数据

c++ - 我需要关闭 std::fstream 吗?

c++ - 我可以安全地使用#ifdef 来了解是否包含 c++ std header 吗?

c++ - 使用不同编译器编译的库