getline() 不打开文本文件

getline() not opening text file

您好,我目前在 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;
}

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

当我 运行 代码时,它显示 "File not open" 我不确定为什么? 我是 c++ 的新手,有人可以解释为什么这不起作用吗?

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

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

另一个无关但不相关的注意事项,因为您使用的是 "using namespace" 指令,所以您也可以像使用 cin 和 cout 一样从字符串中省略 std:: 。没什么大不了的,只是看代码。

而不是

    ifstream myfile("textex.txt");

尝试

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

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