【问题标题】:Issues reading input from a .txt file从 .txt 文件读取输入的问题
【发布时间】:2012-12-01 23:19:54
【问题描述】:

我正在处理一个要求必须从文件中获取输入然后进行处理的项目。我们获得了用于打开文件并检查以确保它已打开的代码框架,但我在打开文件时遇到问题。

我的代码

int main()

{
    readFile();
}

void readFile()
{
    ifstream fin;
    string fileName;
    int x;

    cout << "Enter the file you wish to read from: ";
    cin >> fileName;

    fin.open(fileName.c_str(), ios::in);

    if(!fin.is_open())
    {
        cerr << "Unable to open file " << fileName << endl;
        exit(10);
    }
}

我的控制台: http://i.stack.imgur.com/2derI.jpg

我们基本上得到了所有这些代码,所以我完全不知道为什么这不起作用。这只是我更大项目的一部分,但在我开始工作之前,我什至无法尝试这部分。任何帮助将不胜感激。

【问题讨论】:

  • @PeteBecker:确实如此,看看控制台后面的窗口。
  • 1) 将您的 cerr 行替换为 perror(fileName.c_str());。 2)你的进程的当前工作目录不是你想象的那样。
  • 是的。如果您查看我链接的照片,它也会显示我的项目文件夹。 12.txt 文件与程序的 .exe 位于同一目录中。
  • @Borgleader - 是的,错过了。
  • 尝试打开12.txt.txt(可能你的目录设置没有显示扩展名,而.txt是文件名的一部分)

标签: c++ io fstream


【解决方案1】:

可能您的目录设置没有显示文件扩展名。您需要输入12.txt.txt 而不是12.txt。

【讨论】:

    【解决方案2】:

    我相信这可能与文件名有关,我在选择不同的文件时编译并运行了这段代码,但我创建了一个 12.txt 文件,它产生了同样的错误。我认为文件名是一个数字是有问题的,我建议重命名文件,但我不知道是什么原因导致这种情况发生

    【讨论】:

    • 我也尝试了 12.txt.txt,但没有成功,但其他文件仅使用一个扩展名就可以正常工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多