Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (int argc, char **argv){
  5. int n;
  6. int nCheck; //used to make sure both files are of same length
  7. int err;
  8. FILE *words = fopen("words.dat", "r");
  9. FILE *matrix = fopen("matrix.dat","r");
  10. FILE *graph = fopen("graph.dot","w+");
  11. fprintf(graph,"graph {\n\toverlap=scale\n");
  12. FILE *test = fopen("result.dat","w+");
  13.  
  14. err = fscanf(words, "%d\n",&n);
  15. if (err!=1){
  16. printf("Error reading file.\n");
  17. return EXIT_FAILURE;
  18. }
  19.  
  20. char vocab[n*50];
  21. char *vocabPointer[n];
  22.  
  23. for (int i = 0; i<n; i++){
  24. vocabPointer[i] = vocab + (i*n);
  25. }
  26.  
  27. for (int i = 0; i<n;i++){
  28. int columnVal = 0;
  29. char charHold = getc(words);
  30. while (charHold != EOF){
  31. if (charHold == '\n'){
  32. vocabPointer[i][columnVal] = '\n';
  33. fprintf(test,"\n",vocabPointer[i][columnVal]); //testing for correct array inputs.
  34. break; //scanning of word complete, break and scan next.
  35. }
  36. else if (charHold == ' '){
  37. vocabPointer[i][columnVal] = '\n';
  38. charHold = getc(words);
  39. }
  40. else{
  41. vocabPointer[i][columnVal] = charHold;
  42. fprintf(test,"%c",vocabPointer[i][columnVal]); //testing for correct array inputs.
  43. charHold = getc(words);
  44. columnVal++;
  45. }
  46. }
  47. if (charHold == EOF){
  48. vocabPointer[i][charHold] = '\n';
  49. }
  50. }
  51. fclose(test);
  52.  
  53. err = fscanf(matrix,"%d\n",&nCheck);
  54. if ((err!=1)||(nCheck!=n)){
  55. printf("Error reading file.\n");
  56. return EXIT_FAILURE;
  57. }
  58.  
  59. for (int i = 0; i<n; i++){
  60. for (int j = 0; j<n; j++){
  61. int firstWord = 0;
  62. int secondWord = 0;
  63. int check = 0;
  64. fscanf(matrix,"%d ", &check);
  65. if(check==1){
  66. fprintf(graph,"\t\"");
  67. while(vocabPointer[i][firstWord]!='\n'){
  68. fprintf(graph,"%c",vocabPointer[i][firstWord]);
  69. printf("%c",vocabPointer[i][firstWord]);
  70. firstWord++;
  71. }
  72. printf("\n");
  73. fprintf(graph,"\" -- \"");
  74. while(vocabPointer[j][secondWord]!='\n'){
  75. fprintf(graph,"%c",vocabPointer[j][secondWord]);
  76. printf("%c",vocabPointer[j][secondWord]);
  77. secondWord++;
  78. }
  79. printf("\n");
  80. fprintf(graph,"\"\n");
  81. }
  82. }
  83. }
  84. fprintf(graph,"}");
  85. fclose(words);
  86. fclose(matrix);
  87. fclose(graph);
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement