0

我是 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;
}
4

3 回答 3

4

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

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
  }
}
于 2013-04-27T13:04:23.307 回答
1

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

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

只为 3 个变量添加循环是没有用的。3 个语句就可以了(如果是这种情况)。

于 2013-04-27T13:09:26.667 回答
1
config_file.seekg(0,config_file.beg);
config_file >> fu_unit_adder;
config_file >> fu_unit_mult;
config_file >> fu_unit_div;

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

于 2013-04-27T14:41:27.477 回答