вывод неографа в Graphviz c++
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <boost/graph/graphviz.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/iteration_macros.hpp>
#define _SCL_SECURE_NO_WARNINGS
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
ifstream in("input.txt");
ofstream out("output.txt");
out << "graph { " << endl;
int m;//кол-во ребер
int n;//кол-во вершин
in >> n;
in >> m;
int x, y, z;//считываем дуги и вес
vector < pair < int, pair<int, int> > > g(m); // вес - вершина 1 - вершина 2
vector < pair<int, int> > res;//массив для хранения дуг остовного дерева
for (int i = 0; i < m; i++)
{
in >> x >> y >> z;
g[i].first = z;
g[i].second.first = x;
g[i].second.second = y;
}
int tree_weight = 0;
int cost = 0;
sort(g.begin(), g.end());
vector<int> tree_id(n);
for (int i = 0; i < n+1; i++) {
tree_id.push_back(NULL);
}
for (int i = 0; i < n+1; ++i)
tree_id[i] = i;
for (int i = 0; i < m; ++i)
{
int a = g[i].second.first, b = g[i].second.second, l = g[i].first;
if (tree_id[a] != tree_id[b])
{
cost += l;
res.push_back(make_pair(a, b));
int old_id = tree_id[b], new_id = tree_id[a];
for (int j = 0; j < n+1; ++j)
if (tree_id[j] == old_id)
tree_id[j] = new_id;
}
}
cout << "Ребра минимального остовного дерева: " << endl;
for (int i = 0; i < res.size(); i++) {
out << res[i].first << "--" << res[i].second<<";"<<endl;
cout << res[i].first << " , " << res[i].second << endl;
}
out << "}";
cout << "Вес минимального остовного дерева: "<<cost<<endl;
system("dot output.txt -Tpng -og.png");
}
Сделал алгоритм крускала. Вывел граф в текстовый файл в таком виде:
graph {
2--4;
3--4;
1--2;
3--5;
4--6;
}
Пишет syntax error in line 7. То есть это там, где скобка. А что не так здесь?Я в файл все это пустых строчек писал(просто тут нельзя так вписать).
