diff options
author | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-11-25 17:39:24 +0100 |
---|---|---|
committer | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-11-25 17:39:24 +0100 |
commit | 8d7bfe241b730e26175aa49a800c5fc9fdb4909c (patch) | |
tree | f6a643a22459ea9270d9526e34fe1eb49270b0fd /main.c | |
parent | 8211bf815dbcf193439fc3f0927a5e9de1bce3bc (diff) | |
download | AlgoProg-Projet-8d7bfe241b730e26175aa49a800c5fc9fdb4909c.tar.gz AlgoProg-Projet-8d7bfe241b730e26175aa49a800c5fc9fdb4909c.zip |
Added parser for DIMACS format + some examples.
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 42 |
1 files changed, 40 insertions, 2 deletions
@@ -28,11 +28,49 @@ void max_clique_a(const graph g, set k, set c, set *mc) { delete_set(k2); delete_set(c2); } + delete_set(cc); } } -int main() { - graph g = load_graph(stdin); + +// Driver + +void usage(char *pname) { + printf("\nUsage:\n\t%s [options] [<graph file>]\n\n", pname); + printf("Available options:\n"); + printf("\n -d\n\tRead input in DIMACS format\n"); + printf("\n -h, --help\n\tShow this help page\n"); +} + +int main(int argc, char **argv) { + int i; + int dimacs = 0; + char *filename = "-"; + + for (i = 1; i < argc; i++) { + if (!strcmp(argv[i], "-d")) { + dimacs = 1; + } else if (argv[i][0] == '-') { + usage(argv[0]); + return 0; + } else { + filename = argv[i]; + } + } + + FILE *f = stdin; + if (strcmp(filename, "-")) { + f = fopen(filename, "r"); + if (f == NULL) { + fprintf(stderr, "Error: could not open file %s\n", filename); + return 1; + } + } + graph g = (dimacs ? load_graph_dimacs(f) : load_graph(f)); + if (g == NULL) { + fprintf(stderr, "Error loading file %s\n", filename); + return 1; + } dump_graphviz(g, stdout); // do stuff with graph |