2015-10-05 179 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個月前:) –