如何将大量数字合并到c ++代码中

时间:2014-07-18 15:04:09

标签: c++ arrays excel

我有四个列表,每个列表包含84种不同的速率,我希望能够根据输入的信息使用if / else语句进行访问,我希望有一些更有效的方法,而不是将每个列表输入数组。

最简单的方法是什么?任何提示都非常有用我只需要一个起点。

   #include "MaleNonSmoker.txt"  
    using namespace std;  
    double ratesmn[85] = {  
    #include "MaleNonSmoker.txt"  

        - 1  
   };  
    #include <iostream>  
    #include <string>  
    #define STARTAGE 15  
    int main() {  
        double const *rates;  
        rates = ratesmn;  
        int age;  
            cout << "How old are you?\n";  
cin >> age;  
double myrate = ratesmn[age - STARTAGE];  

        return 0; 
    }

我得到的错误来自第1行:语法错误:&#39;常数&#39; 从第7行开始:&#39;太多的初始化者&#39;

3 个答案:

答案 0 :(得分:3)

如果数字没有改变,则无需在运行时从文件中读取数字。您也可以在编译时使用它们。

使用您喜欢的任何工具创建包含数组的四个文件,但每个数字后面都有一个逗号,如下所示:

51,
52,
53,

在c ++代码中,定义4个数组,并使用#include包含文本文件中的数字;

int ratesms[85] = {

#include "ratesms.txt"

    -1 // add another number because the txt file ends with a comma
};

对其他阵列执行相同的操作。

在您的代码中确定您要使用的列表,并设置指向该列表的指针,例如

int const *rates;

if ( /* smoking male */ )
  rates = ratesms;
else if ( /* other variations */ )
  rates = ...

然后像这样使用它;

#define STARTAGE 15

int age=35; // example
int myrate=rates[age-STARTAGE];

如果您不想从数组索引中减去起始年龄,您还可以向数组中添加15个虚拟数字;

int ratesms[100] = {

    0,0,0,0,0,
    0,0,0,0,0,
    0,0,0,0,0,

#include "ratesms.txt"

    -1 // add another number because the txt file ends with a comma
};

现在ratesms[15]将包含txt文件中的第一个数字。

答案 1 :(得分:0)

您可以在C ++中定义一个数字数组,如下所示:

int[6] rates = {1, 2, 3, 4, 5, 6};

答案 2 :(得分:0)

&#34;列表的格式是什么?&#34;

读取它们应该非常简单 - 在C ++中查看文件I / O上的this教程。如果将列表保存为简单的.txt文件,则可以通过创建ifstream并调用getline()来逐行读取每个列表项。文件数据将被读取为字符串,因此您可以使用stoi()和stod()将它们分别转换为整数和双精度(请查看the string reference以获取更多转换方法)。

您还可能希望将excel文件保存为逗号分隔值(.csv)文件,然后可以按相同方式逐行读取。每行代表一行,单元格值以逗号分隔,非常容易解析。