主要问题是当我尝试将数据从文件读取到向量中时没有任何反应。
我正在创建一个
Graph
类,我的任务是从一个文件创建一个图形,但是例如,这是我的小调试代码:
int main()
{
const char* fl ="Data";
vector<int> nodes;
ifstream file(fl);
istream_iterator<int> start(file), end;
vector<int> read_data(start, end);
nodes = read_data;
cout<<nodes[0];
}
20
0 1 17
0 2 2
0 3 9
0 4 24
0 5 28
所以基本上,7 行代码会在控制台中打印 20,对吗?
出于某种原因,不,在两个 IDE 中什么都没有发生,而且我得到一个错误,因为向量是空的。
我快把自己逼疯了,因为我在在线 C++ 编译器 OnlineGDB 中尝试了相同的代码,而且它有效!
我用了
!file.fail()
检查,效果很好。
在 VS 和 Rider 中,nodes
向量的大小为零(没有变化)。我尝试了各种方法:通过for(auto:)
,通过while(file.getline())
等,但我最好的结果是将文件切成字符串行并迭代每一行。它有效,但现在存在所有整数也被切片的问题。 {20, 0, 1, 17, 0...}
{-65, -117, -113, 2, 0, 0, 1, 1, 7...}
{ }
好,但仍然不是正确的结果。