c++ - 从文本文件读取到 C++ 中的数组?

标签 c++

我正在尝试从文本文件中读取每一行并将其放入数组列中,我真的试过了:

    string buffer[256];
string a;
ifstream myfile ("1.txt");

for(i=0;i<10000;i++)
    {

        //readArrivalTimes(i);
        myfile.getline (buffer,100);
        a[i]=buffer;
    }

但它不起作用

所以我确实尝试了你们给我的解决方案之一,我是这样做的:

std::vector<std::string> v;
std::string buffer;


string a[1024];
ifstream myfile;
myfile.open("1.txt");

for(i=0;i<n;i++)
{
    getline (myfile, buffer);

    a[i]= buffer;
    cout << buffer << "\n";
}

但我们可以看到它是字符串!

我们可以让它作为整数工作吗?

[已解决:)]

首先感谢大家帮助我,我真的很感谢你的帮助, 我是 C++ 的新手。

当然这不是家庭作业。

我对代码做了一些修改,以便它可以处理整数

int a[1024];
ifstream myfile;
myfile.open("1.txt");

for(i=0;i<n;i++)
{
    getline (myfile, buffer);

    a[i]= atoi(buffer.c_str());
    cout << buffer << "\n";
}

非常感谢。

最佳答案

你的代码有很多错误。
已经提到了一些,例如将 char* 分配给 int 数组。

但是您的方法更像是 C 而不是 C++。在 C++ 中,它看起来更像这样:

std::vector<std::string> lines;
std::ifstream myfile("1.txt");
if(myfile.isopen())
{
    std::string line;
    while(getline(myfile, line))
    {
        lines.push_back(line);
    }
}

我还没有测试过它,但它应该会向您展示如何做到这一点。

编辑:根据评论更改了代码。

再次编辑以使其适用于整数:

std::vector<int> numbers;
std::ifstream myfile("1.txt");
if(myfile.isopen())
{
    std::string line;
    while(getline(myfile, line))
    {
        int number;
        std::istringstream(line) >> number;
        numbers.push_back(number);
    }
}

关于c++ - 从文本文件读取到 C++ 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692748/

相关文章:

c++ - 请求关于 dll 编程的好教程

c++ - 将类成员数组组合到单个数组时性能受到影响

C++ MFC 缺少 const char* 变量

c++ - 组合键与 ENTER 键

c++ - std::function 的移动赋值不是 noexcept,但 std::function::swap 是。是什么赋予了?

C++ 文件 IO : Reading and Writing 16-bit Words

c++ - 未声明的标识符错误消息

c++ - 我们可以在 SDL2 中使用 std::fstream 而不是 SDL_RWops 吗?

c++ - 将迭代器变成标量索引?

c++ - 将指向 C++ 结构的指针传递给 Ada