从CSV创建字符串数组

时间:2015-06-29 14:49:46

标签: c++ csv

我有一个原子元素,符号和名称的原子元素的csv文件。该文件格式为:

1,H,氢
2,他,氦
3,李锂
...

我想创建一个由原子序数引用的符号数组。即。 arrayName中[32] = “格”;

我一直在尝试使用sscanf,但它一直没有用。粗略的代码如下:

char temp[200];
float temp_z;
std::string temp_ele;
std::string temp_name;

while(!fin.eof())
{
fin.getline(temp,200);
sscanf(temp, "\"%f\",\"%s\", \"%s\"",&temp_z, &temp_ele, &temp_name);

cout<<temp_z<<endl;
cout<<temp_ele<<endl;
cout<<temp_name<<endl;
}

2 个答案:

答案 0 :(得分:1)

使用此循环读取文件的每一行:

    string line;
    ifstream myfile;
    myfile.open("myfile.txt");

   if(!myfile.is_open()) {
      perror("Error open");
      exit(EXIT_FAILURE);
   }
    while(getline(myfile, line)) {
     // Split line by comma to get what's your want
    }

然后用逗号分隔每一行以获取该行的每个元素。

答案 1 :(得分:-1)

您可以像这样阅读每个元素:

string theStrings[200]; //initialize to correct size
int i = 0;
string name;
while(!fin.eof())
{
    getline(thefilestream, name, ',' );
    theStrings[i++] = name;
    cout<<name<<endl;
}