2016-03-09 5 views
0

У меня есть простая проблема с чтением файла. Я пытаюсь открыть файл, который включен в файлы ресурсов в виде файла .txt. Проблема возникает, когда я пытаюсь ее скомпилировать и распечатать из структуры.Cpp - Не удается открыть файл

#include <iostream> 
#include <fstream> 

struct mystruct 
{ 
double x, y; 
int a; 

}; 


int main() 
{ 
using namespace std; 

ifstream file("file.txt"); 
double x, y; 
int a; 
if (file.is_open()) { 
    while (file >> x >> y >> a) 
    { 
     mystruct m; 
     m.x; 
     m.y; 
     m.a; 

     cout << m.x << endl << m.y << endl << m.a << endl; 
    } 
} 
else 
    cout << "Cannot open the file"; 

return 0; 
} 

Я использую, что проводной сдвиг, потому что в моем файле у меня есть три различных значения, которые я должен хранить в течение трех различных переменных в моей структуре.

Почему мой файл не отображается и не может быть открыт?

Вот ссылка на file.txt источник: http://wklej.org/hash/05290721372/

А также вот мой CMakeLists.txt:

cmake_minimum_required(VERSION 3.3) 
project(reading_from_file) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(reading_from_file ${SOURCE_FILES}) 

Может быть, здесь проблема, почему файл не виден.

Благодарим за помощь!

ответ

2

Прежде всего: извините за мой плохой английский.

Во-вторых: вы уверены, что файл.txt находится в правильном каталоге?

А как насчет разрешения на чтение? Попробуйте с

chmod ugo+r file.txt 

Для меня это работает; или, по крайней мере, он открывает файл.

Однако, я не думаю, что программа работает так, как вы ожидаете: она считывает значения, но печатает каждый раз три случайных значения, которые инициализируются членами «m».

Вы должны изменить его таким образом

ifstream file("file.txt"); 
if (file.is_open()) { 
    mystruct m; 
    while (file >> m.x >> m.y >> m.a) 
     cout << m.x << endl << m.y << endl << m.a << endl; 
} 
else 
    cout << "Cannot open the file"; 
+0

Привет, спасибо за ваш ответ. Я действительно не знаю, почему он не хочет открываться, но я установлю Linux и поставлю Windows в корзину в ближайшие несколько минут. :) Пс: разрешения в порядке – axeMaltesse

+0

Фантастическая идея. :) Я шучу, конечно. И извините меня: я так привык к Unix/Linux, что не думал, что ваша система может быть без «chmod». – max66

+0

нет беспокойство. Его окна в любом случае: p – axeMaltesse

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