2015-10-05 130 views
0

嗨我有以下代码,并不明白为什么它不读取文件! 我做错了什么?虽然.txt文件是用数据编写的,并且目录是正确的。文件不被读取(ifstream)

#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; 
} 

回答

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

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

您需要转义反斜杠。

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

或者使用[原始字符串字面量(http://en.cppreference.com/w/cpp/language/string_literal)'ifstream in(R“raw(E:\ vector.txt)raw”)'。 – Snps

+0

谢谢你,帮助,我忘了有这样的东西:“\ v”,“\ n”,“\ t”... – MrCatalin4ic

+0

R“raw(...)raw”是什么?你可以解释吗? – MrCatalin4ic

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

应该

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

你可以使用它也可以作为

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

_“会员2年5个月”_在提交答案之前,还有一个预览窗格。 –

+0

我曾经与Facebook签约过,但从未留在现任成员。那可能是2年,5个月前:) –