2016-12-03 4 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 

Я не могу понять, как прочитать из файла и вызвать соответствующие функции в addEdge (0,1) для ADD 0 1 и для всех остальных.

Я пробовал использовать getline(), но я не могу понять, как получить номера из строки.

Не есть ли способ чтения из файла, как если файл был только ADD команды, которые мы могли бы использовать while(file >> str >> num1 >> num2)

+3

Используйте ['std :: istringstream'] (http://en.cppreference.com/w/cpp/io/basic_istringstream) для дальнейшего анализа строк. –

+0

Я не могу использовать sstream. –

+0

_ «Я не могу использовать sstream.» _ Почему? –

ответ

2

Не есть ли способ чтения из файла, как если файл был только ADD команды, которые мы могли бы использовать

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. 
} 
Смежные вопросы