使用C ++将文件中的数据存储到二维数组中

时间:2014-01-08 05:38:07

标签: c++ visual-c++

我在C ++中有以下代码

char *Names[];
int counter=0;
int _tmain(int argc, _TCHAR* argv[])
{
    int data;
    ifstream fileX;
    fileX.open("myfile",ios::in);
    assert (!fileX.fail( )); 
    fileX >> data; 
    while(fileX!=eof())
    {
        createNamesList(data);
        fileX >> data;
    }
    return 0;
}

void createNamesList(char *tmp)
{
    Names[counter] = tmp;
    counter++;
}

我想逐行读取文件中的数据并将每一行存储在二维array char* Names[]中,以便与我一起保存整个列表。每行中数据的大小是可变长度以及行数; 喜欢

 Name[0] ="Data from Line 1"
 Name[1] ="Data from Line 2"
 Name[2] ="Data from Line 3"
 Name[3] ="Data from Line 4"
 .
 .
 .

以上代码给出了以下错误

  

错误LNK2001:未解析的外部符号“char ** Names”(?姓名@@ 3PAPADA)

我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

您看到的错误消息几乎不是此代码问题的冰山一角。

我建议使用编译器附带的std::vectorstd::string类来使这更简单。

int main() {
    std::ifstream fileX("myfile");

    std::vector<std::string> Names;

    std::string temp;
    while (std::getline(fileX, temp))
        Names.push_back(temp);
    return 0;
}