0

我正在尝试从 .txt 文件中获取一些名称并将它们添加到 char 数组中,但发生了一些奇怪的事情。这是我输入的代码部分:

int main()
{
string namelist[30];
int i=0;
string line;
ifstream file("C:\\names.txt");
if (file.is_open())
{
    while ( getline (file,line).good () )
    {
        getline(file,line);
        cout << line << endl;  // It prints the names normally (it was added for   debugging) //
        namelist[i] = line;
    }
    file.close();
}
cout << namelist;  // Here is the prob.

在代码的最后一行,它在控制台而不是列表上打印一个指针,我不知道为什么。我对 c++ 很陌生,所以不要粗鲁!

文本文件类似于:

John
Nick
Samatha
Joe
...

任何帮助,将不胜感激 :)

4

1 回答 1

1

因为数组的名称是一个指针,所以写

for (int i = 0; i < 30; ++i)
    std::cout << namelist[i] << std::endl;

或者

#include <algorithm>
#include <iterator>
//...
std::copy(namelist
         , namelist + 30
         , std::ostream_iterator<std::string>(std::cout, "\n")
);
于 2012-09-06T23:07:33.923 回答