我在阅读文件时遇到了一个简单的问题。我试图打开一个包含在资源文件中的文件作为.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})
我正在使用有线移位,因为在我的文件中我有三个不同的值,我必须在我的结构中存储三个不同的变量。
为什么我的文件不可见且无法打开?
以下是file.txt来源的链接:http://wklej.org/hash/05290721372/
这也是我的CMakeLists.txt:
{{1}}
也许这就是为什么文件不可见的问题。
谢谢你的帮助!
答案 0 :(得分:2)
首先:抱歉我的英语不好。
第二:你确定file.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";