【问题标题】:File is not read (ifstream)未读取文件(ifstream)
【发布时间】:2015-10-05 13:04:49
【问题描述】:

您好,我有以下代码,不明白为什么它不读取文件! 我做错了什么?虽然.txt文件是用数据写入的,目录是正确的。

#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main() {
vector<string> v;

ifstream in("E:\vector.txt");
string line;
while(getline(in, line))
v.push_back(line); // Add the line to the end
// Add line numbers:
cout<<"v.size()="<<v.size();
for(int i = 0; i < v.size(); i++)
cout << i << ": " << v[i] << endl;

return 0;
}

【问题讨论】:

    标签: c++ vector ifstream


    【解决方案1】:
    ifstream in("E:\vector.txt");
    

    哎呀!这不会打开E:\vector.txt。反斜杠在字符串文字中引入 转义序列。我不知道"\v"是什么,但不是字符\后跟字符v

    您需要转义反斜杠。

    ifstream in("E:\\vector.txt");
    

    【讨论】:

    • 或者使用raw string literal ifstream in(R"raw(E:\vector.txt)raw")
    • 谢谢大佬,帮了大忙,我忘了有这样的东西: "\v" , "\n", "\t"...
    • R"raw(...)raw" 是什么意思?你能解释一下吗?
    • @MrCatalin4ic:查找“C++ 原始字符串文字”。
    【解决方案2】:
    ifstream in("E:\vector.txt");
    

    应该是

    ifstream in("E:\\vector.txt");
    

    你也可以用它

    in.open ("E:\\vector.txt", std::ifstream::in);
    

    【讨论】:

    • “会员 2 年零 5 个月” 在您提交答案之前还有一个预览窗格。
    • 我曾经注册过 facebook,但从未成为活跃会员。那可能是 2 年零 5 个月前 :)
    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2020-07-04
    • 1970-01-01
    相关资源
    最近更新 更多