逐行读取文件并将其存储为整数变量C++

Reading a file line by line and storing as an integer variable C++

本文关键字:整数 变量 C++ 存储 读取 文件 逐行      更新时间:2023-10-16

我是c++的初学者。我正在尝试读取一个文件,并希望将其保存为一个整数变量。我的档案里有。

4
3
1

现在我希望变量具有以下值

fu_unit_adder=4                                                                         
fu_unit_mult=3
fu_unit_div=1

我该怎么办??

到目前为止我的代码:

#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>
#include <cstdlib>
#include <stdio.h>
using namespace std;

int main()
{
    int  fu_unit_adder;
    int  fu_unit_mult;
    int  fu_unit_div;
    ifstream config_file ("config.txt");
    if (config_file.is_open())
    {
        for (int j = 0; j < 3; j++)
        {
            getline(config_file,fu_unit[j]);
            cout << fu_unit[j] << endl;
        }
    }
    system("pause");
    return 0;
}

如果您知道您的文件将采用该格式,那么您不妨使用>>从文件中提取。你可以这么简单地做:

ifstream config_file ("config.txt");
config_file >> fu_unit_adder >> fu_unit_mult >> fu_unit_div;

相反,如果你想要一个可以在某个时候扩展的fu_unit单元阵列,那么你可以这样做:

ifstream config_file ("config.txt");
int fu_unit[3];
for (int i = 0; i < 3; i++) {
  config_file >> fu_unit[i];
}

如果你想让它更健壮一点,你可以像这样检查提取是否成功:

ifstream config_file ("config.txt");
int fu_unit[3];
for (int i = 0; i < 3; i++) {
  if (!(config_file >> fu_unit[i])) {
    // Extraction i failed, make sure you do config_file.clear() to continue
  }
}

如果您知道文件中数据的顺序是固定的,并且计数总是3,您可以尝试:

getline(config_file,fu_unit_adder);
getline(config_file,fu_unit_mult);
getline(config_file,fu_unit_div);

只为3个变量添加一个循环是没有用的。3句话就可以了(如果是这样的话(。

config_file.seekg(0,config_file.beg);
config_file >> fu_unit_adder;
config_file >> fu_unit_mult;
config_file >> fu_unit_div;

这应该适用于读取前三个变量。