2016-12-03 39 views
-4

我想要閱讀我的鄰接列表圖中的命令以遵循。我想從文本文件中讀取命令

5 
ADD 0 1 
ADD 1 2 
ADD 2 3 
ADD 3 1 
ADD 2 0 
LIST 2 
DFS 2 
BFS 2 
REMOVE 1 

我不明白如何從文件中讀取這個和ADD 0 1,對於所有其他調用相應的功能addEdge(0,1)。

我試過使用getline()但我不明白如何從字符串中獲取數字。

是不是有什麼辦法從文件中讀取一樣,如果該文件只有添加命令,我們可以使用while(file >> str >> num1 >> num2)

+3

使用['std :: istringstream'](http://en.cppreference.com/w/cpp/io/basic_istringstream)進一步解析這些行。 –

+0

我無法使用sstream。 –

+0

_「我無法使用sstream。」_爲什麼? –

回答

2

是不是有什麼辦法從像如果文件只有一個文件的讀取添加命令我們可以使用

while(file >> str >> num1 >> num2) 

你可以使用一些類似的代碼

std::string command; 
while(file >> command) { 
    if(command == "ADD") { 
     int num1, num2; 
     if(!(file >> num1 >> num2) { 
      std::err << "Unexpected input error" << std::endl; 
     } 
     else { 
      addEdge(num1,num2); 
     } 
    else if(command == "LIST") 
     int num1; 
     if(!(file >> num1) { 
      std::err << "Unexpected input error" << std::endl; 
     } 
     else { 
      list(num1); 
     } 
    } 
    else if(command == "DFS") { 
     // etc. 
    } 
    // etc. 
}