无法使用c ++打开file.txt

时间:2015-11-21 16:01:58

标签: c++ file text vector fstream

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

我已尝试过一些变化:

  • file.open(" array.txt&#34);
  • 省略file.close();
  • 包括" C:\ array.txt&#34 ;; (前面是#)
  • file.open(" C:\ array.txt&#34)

我使用的是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] << " ";
    }
}

此代码打印&#34;无法访问文件。&#34;

4 个答案:

答案 0 :(得分:4)

无法打开文件,因为文件系统找不到名为“[Bell] rray.txt”的文件。字符序列'\ a'是“Make my computer Beep”字符。

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

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

此外,您的包含后还有不必要的分号。 (事实上​​,在处理警告错误设置中,这将无法编译!)

答案 1 :(得分:1)

\a只需打开电脑即可发出哔声。请尝试在"C:\\array.txt"来电中写open

答案 2 :(得分:0)

我明白了!我没有将.txt文件放在我的文件夹中,包含源代码,奇怪的是,在我以前的搜索结果中没有提到...我需要更好地搜索!

答案 3 :(得分:-1)

尽量不要明确地调用open:

ifstream file ("array.txt");

请看这里的示例:1