【问题标题】:Unable to open file.txt with c++无法使用 C++ 打开 file.txt
【发布时间】:2015-11-21 16:01:58
【问题描述】:

我在这里查找了类似的帖子,但似乎没有人为我的问题做这项工作。 我基本上是在尝试将 .txt 文件中的一系列单词放入一个向量中,然后打印每个值。例如,我们有 我喜欢赛车 em> 在 array.txt 中,我希望我的向量在位置 0 有“I”,在 1 有“love”,依此类推。不幸的是,代码不会访问“array.txt”,因此它永远不会执行 if 条件下的代码。 现在我听说使用 fstream 库应该可以正常工作,但是永远找不到该文件。我怀疑它不起作用,因为它找不到路径,但我从未在 C++ 中打开文件。另外,我没有将文件放在项目文件夹中的任何位置。

我已经尝试了一些更改:

  • file.open("array.txt");
  • 省略 file.close();
  • 包括“C:\array.txt”; (前面有#)
  • file.open("C:\array.txt")

如果这很重要,我正在使用 Windows 10。

#include <iostream>;
#include <string>;
#include <vector>;
#include <fstream>;
//#include <"C:\Users\Samer El-Hage\Documents">;
using namespace std;

void main(){
    vector<string> v (10);
    ifstream file;
    file.open("C:\array.txt", ios::in);
    if (file.is_open())
    {
        for (int i = 0; i < 3; i++)
        {
            file >> v[i];
        }
        file.close();
    }
    else cout << "Could not access file.";
    for (int i = 0; i < 3; i++)
    {
        cout << v[i] << " ";
    }
}

此代码打印“无法访问文件”。

【问题讨论】:

  • file.open 语句中,使用C:\\array.txt - 见en.cppreference.com/w/cpp/language/escape
  • 使用正斜杠:"C:/array.txt"、转义的反斜杠:"C:\\array.txt" 或原始字符串文字:R"(C:\array.txt)"。此外,包含后还有不必要的分号。 (事实上​​,在将警告视为错误设置中,这不会编译!)
  • 顺便说一句,main() 函数返回 int。总是。查一下。

标签: c++ file text vector fstream


【解决方案1】:

文件无法打开,因为文件系统找不到名为“[Bell]array.txt”的文件。字符序列 '\a' 是“让我的电脑发出哔哔声”字符。

使用正斜杠:"C:/array.txt"、转义的反斜杠:"C:\\array.txt" 或原始字符串文字:R"(C:\array.txt)"

该文件还必须存在于指定位置。如果您不提供驱动器而只说"array.txt",则该位置默认为可执行文件所在的位置(或在 IDE 中,即工作目录)。

另外,包含后有不必要的分号。 (事实上​​,在将警告视为错误设置中,这不会编译!)

【讨论】:

    【解决方案2】:

    我明白了!我没有将 .txt 文件和源代码一起放在我的文件夹中,奇怪的是,我之前的搜索结果中没有提到它……我得更好地搜索!

    【讨论】:

      【解决方案3】:

      \a 只需打开计算机哔声。尝试在 open 调用中编写 "C:\\array.txt"

      【讨论】:

        【解决方案4】:

        尽量不要显式调用 open:

        ifstream file ("array.txt");
        

        看这里的例子:1

        【讨论】:

        • 问题是“C:\array.txt”中的“\a”是铃声或警报声的转义序列。在互联网上搜索“c++ 转义序列”。
        猜你喜欢
        • 1970-01-01
        • 2020-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-04
        • 2020-02-17
        • 2021-06-26
        相关资源
        最近更新 更多