2015-10-05 3 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. Обратные косые черты вводят escape-последовательности в строковых литералах. Я не знаю, что такое "\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 месяцев назад :) –

Смежные вопросы