Files
Abdelrahman Said a11edf0c53 Add graph references
2026-06-28 13:49:01 +01:00

53 lines
1.6 KiB
C

#include <igraph.h>
#include <locale.h>
#include <stdio.h>
#include <string.h>
int main(void) {
const char *filename = "weighted.gml";
igraph_t graph;
igraph_safelocale_t loc;
/* Initialize the library. */
igraph_setup();
/* Attempt to set a locale that uses a decimal comma. Locale names
* differ between platforms, and not all locales are available,
* so the locale change may not be successful. */
const char *locname = setlocale(LC_ALL, "de_DE");
struct lconv *lc = localeconv();
if (strcmp(lc->decimal_point, ",")) {
/* If decimal point is not a comma, presumably because the requested
* locale was not available, report locale information. */
fprintf(stderr, "setlocale() returned '%s', decimal point is '%s'\n",
locname ? locname : "NULL",
lc->decimal_point);
}
FILE *file = fopen(filename, "r");
if (! file) {
fprintf(stderr, "Cannot open %s file.\n", filename);
exit(1);
}
/* An attribute table is needed to read graph attributes. */
igraph_set_attribute_table(&igraph_cattribute_table);
/* At this point, the current locale may use decimal commas.
* We temporarily set a C locale using enter_safelocale() to
* allow the GML reader and writer to work correctly.*/
igraph_enter_safelocale(&loc);
if (igraph_read_graph_gml(&graph, file) != IGRAPH_SUCCESS) {
fprintf(stderr, "Reading %s failed.\n", filename);
abort();
}
igraph_write_graph_gml(&graph, stdout, IGRAPH_WRITE_GML_DEFAULT_SW, NULL, "");
igraph_exit_safelocale(&loc);
igraph_destroy(&graph);
return 0;
}