getline()没有打开文本文件

时间:2015-07-08 21:23:48

标签: c++ codeblocks getline

您好我目前在OSX上使用CodeBlocks 13.12。

我正在尝试打开以下.txt文件

第1行 第2行 第3行

我的代码只是:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    cout<<'\n';
    std::string line;
    ifstream myfile("textex.txt");
    if(myfile.is_open())
        cout << "File is open";
    else
        cout << "File not open";

    cout<<'\n';
    return 0;
}

我还将该文件包含在项目文件夹中,并尝试将其链接并进行编译。

当我运行代码时,它显示&#34;文件未打开&#34;而且我不确定为什么? 我是c ++的新手,有人可以解释为什么这不起作用吗?

4 个答案:

答案 0 :(得分:1)

可能是因为项目文件夹未设置为工作目录。尝试指定完整路径。

答案 1 :(得分:0)

尝试键入文件的完整路径,而不仅仅是文件名。 告诉我当时会发生什么。

另一个注意事项但不相关,因为你正在使用&#34;使用命名空间&#34;指令,您也可以省略std :: from string,就像使用cin和cout一样。这不是什么大问题,只是代码的外观。

答案 2 :(得分:0)

而不是

    ifstream myfile("textex.txt");

尝试

    ifstream myfile;
    myfile.open("/Users/name/Code/textex.txt"); // Use the full path

答案 3 :(得分:0)

当您从Code :: Blocks运行程序时,它在项目文件夹上运行,因此您的文本文件必须位于项目文件夹中,否则文本文件必须位于可执行文件所在的文件夹中。