gpt4 book ai didi

c++ - 为什么此代码在尝试将 .txt 放入 vector 并对其进行计算时返回空白控制台?

转载 作者:行者123 更新时间:2023-11-30 01:10:14 24 4
gpt4 key购买 nike

我正在尝试使用名为“scan”的无效函数和名为“lines”的 vector 打开 .txt,但控制台一直返回空白。相同的代码在 Windows 上运行完美,但在 Mac 上运行不佳(均使用 Codeblocks)。可能出了什么问题? .txt 文件与整个项目位于同一文件夹中。

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

void scan(vector<string> &lines)
{
ifstream fin("mytext.txt");
string str;

while(!fin.eof())
{
getline(fin, str);
lines.push_back(str);
}
}



int main()
{
vector <string> lines;
scan(lines);

for(int i=0; i<lines.size(); i++)
{
cout<<lines[i]<<endl;
}
}

最佳答案

您可以更改的内容可以更轻松地解决问题所在:

  1. 始终检查打开是否成功。

    ifstream fin("mytext.txt");
    if ( !fin.is_open() )
    {
    std::cerr << "Unable to open file.\n";
    return;
    }
  2. while(!fin.eof()) 的使用是不正确的。参见 Why is iostream::eof inside a loop condition considered wrong? .将循环更改为:

    while(getline(fin, str))
    {
    lines.push_back(str);
    }

关于c++ - 为什么此代码在尝试将 .txt 放入 vector 并对其进行计算时返回空白控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38495269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com