我的教授非常聪明,但希望像我这样的完全菜鸟只知道如何编程 c++ .我不明白 fstream
函数是如何工作的。
我将有一个包含三列数据的数据文件。我将不得不用对数来确定每行数据代表的是圆形、矩形还是三角形——这部分很容易。我不明白的部分是 fstream
函数是如何工作的。
我想我:
#include < fstream >
那我应该声明我的文件对象吗?
ifstream Holes;
然后我打开它:
ifstream.open Holes; // ?
我不知道正确的语法是什么,也找不到简单的教程。一切似乎都比我的技能可以处理的更高级。
此外,在我读入数据文件后,将数据放入数组的正确语法是什么?
我会声明一个数组吗? T[N]
和 cin
将 fstream
对象 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/