如何从c ++中的文本文件中读取每个整数?

时间:2014-03-07 14:31:31

标签: c++ text fstream

程序停止工作,因为它没有正确读取文本文件。 文本文件包含以下内容:

1 2 
1 3 
1 4 
2 4 
3 4 
0 0 
1 2 
3 2

我想从文本文件中获取两个图形,0 0将两个图形分开。

提前致谢。

int main()
{
    ifstream file2;
    file2.open("ass3.txt");
    int i=1;
    int t1;
    int t2;
    file2>>t1>>t2;
    Graph* graph1;
    Vertex* u;
    Vertex* v;
    cout<<t1<<" "<<t2;//this is giving value -2 and some other random number.
    while(t1==0 && t2==0){
        if(t1==i){
            u=addVertex(t1);
            insert(u,graph1);
            i++;
        }
        if(t2==i){
            u=addVertex(t1);
            insert(u,graph1);
            i++;
        }
        *u = graph1->vertices[t1];
        *v = graph1->vertices[t2];
        addEdge(u, v, true);
        addEdge(v, u, false);
        file2>>t1>>t2;
    }
    Graph* graph2;
    i=0;
    while (!file2.eof()){
        file2>>t1>>t2;
        if(t1==i){
            u=addVertex(t1);
            insert(u,graph2);
            i++;
        }
        if(t2==i){
            u=addVertex(t1);
            insert(u,graph2);
            i++;
        }
        *u = graph1->vertices[t1];
        *v = graph1->vertices[t2];
        addEdge(u, v, true);
        addEdge(v, u, false);
    }
return 1;
}

1 个答案:

答案 0 :(得分:0)

第一个while循环中的条件错误,请尝试设置

while(t1!=0 && t2!=0){

而不是

while(t1==0 && t2==0){

根据您使用的条件,您立即跳转到第二个循环,整个文件放在第二个图形中,导致第一个图形中未初始化的值。

希望这会有所帮助..