fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define NEVHOSSZ 51
  6. #define RENDSZAMHOSSZ 8 //a "-" jel miatt 8
  7.  
  8. struct utvonal_sofor{
  9. char vez_nev[NEVHOSSZ];
  10. char ker_nev[NEVHOSSZ];
  11. };
  12.  
  13. struct utvonal_jarmu{
  14. char tipus[NEVHOSSZ];
  15. char rendszam[RENDSZAMHOSSZ];
  16. };
  17.  
  18. struct indulo_allomas{
  19. char telepules[NEVHOSSZ];
  20. char kozterulet[NEVHOSSZ];
  21. char hazszam[NEVHOSSZ];
  22. };
  23.  
  24. struct cel_allomas{
  25. char telepules[NEVHOSSZ];
  26. char kozterulet[NEVHOSSZ];
  27. char hazszam[NEVHOSSZ];
  28. };
  29.  
  30. struct utvonal_allomas{
  31. struct indulo_allomas indulo;
  32. struct cel_allomas cel;
  33. };
  34.  
  35. struct utvonalengedely{
  36. struct utvonal_sofor sofor;
  37. struct utvonal_jarmu jarmu;
  38. struct utvonal_allomas allomas;
  39. };
  40.  
  41. void readline(char* buf, int len) {
  42. while(1)
  43. {
  44. int got;
  45. int c;
  46. char* res = fgets(buf, len, stdin);
  47. if (res == NULL) {
  48. puts("EOF");
  49. exit(1);
  50. }
  51. got = strlen(res);
  52. /* fgets beteszi a sorveget, vagjuk le ha megvan */
  53. if (res[got - 1] == '\n') {
  54. res[got - 1] = 0;
  55. return;
  56. }
  57. c = fgetc(stdin);
  58. if (c == EOF) {
  59. puts("EOF");
  60. exit(1);
  61. }
  62. if (c == '\n') {
  63. /* a pufferben a teljes sor elfert csak a sorveg maradt le, kesz vagyunk */
  64. return;
  65. }
  66. printf("Tul hosszu! Maximum %d betut irjon be!\n", len - 1);
  67. /* olvassuk be a pufferbol a sor maradekat */
  68. do {
  69. c = fgetc(stdin);
  70. } while (c != EOF && c != '\n');
  71. }
  72. }
  73.  
  74. struct utvonal_sofor Beker_Sofor(){
  75. struct utvonal_sofor l_nev;
  76. printf("Vezeteknev:\n");
  77. readline(l_nev.vez_nev, NEVHOSSZ);
  78. printf("Keresztnev:\n");
  79. readline(l_nev.ker_nev, NEVHOSSZ);
  80. return l_nev;
  81. }
  82.  
  83. struct utvonal_jarmu Beker_Jarmu(){
  84. struct utvonal_jarmu l_jarmu;
  85. printf("a Gepkocsi tipusa:\n");
  86. readline(l_jarmu.tipus, NEVHOSSZ);
  87. printf("rendszama:\n");
  88. readline(l_jarmu.rendszam, RENDSZAMHOSSZ);
  89. return l_jarmu;
  90. }
  91.  
  92. struct indulo_allomas Beker_Indulo(){
  93. struct indulo_allomas l_indulo;
  94. printf("Telepules neve:\n");
  95. readline(l_indulo.telepules, NEVHOSSZ);
  96. printf("Kozterulet neve:\n");
  97. readline(l_indulo.kozterulet, NEVHOSSZ);
  98. printf("Hazszam:\n");
  99. readline(l_indulo.hazszam, NEVHOSSZ);
  100. return l_indulo;
  101. }
  102.  
  103. struct cel_allomas Beker_Cel(){
  104. struct cel_allomas l_cel;
  105. printf("Telepules neve:\n");
  106. readline(l_cel.telepules, NEVHOSSZ);
  107. printf("Kozterulet neve:\n");
  108. readline(l_cel.kozterulet, NEVHOSSZ);
  109. printf("Hazszam:\n");
  110. readline(l_cel.hazszam, NEVHOSSZ);
  111. return l_cel;
  112. }
  113.  
  114. struct utvonal_allomas Beker_Allomas(){
  115. struct utvonal_allomas l_allomas;
  116. l_allomas.indulo = Beker_Indulo();
  117. l_allomas.cel = Beker_Cel();
  118. return l_allomas;
  119. }
  120.  
  121. struct utvonalengedely Beker_utvonalengedely(){
  122. struct utvonalengedely l_utvonalengedely;
  123. printf("Kerem a sofor nevet:\n");
  124. l_utvonalengedely.sofor = Beker_Sofor();
  125. printf("Kerem a gepjarmu adatait:\n");
  126. l_utvonalengedely.jarmu = Beker_Jarmu();
  127. printf("Kerem az allomasadatokat:\n");
  128. l_utvonalengedely.allomas = Beker_Allomas();
  129. return l_utvonalengedely;
  130. }
  131.  
  132. void Kiir_Sofor(struct utvonal_sofor p_nev){
  133. printf("%s %s\n\n", p_nev.vez_nev, p_nev.ker_nev);
  134. }
  135.  
  136. void Kiir_Jarmu(struct utvonal_jarmu p_jarmu){
  137. printf("%s %s\n\n", p_jarmu.tipus, p_jarmu.rendszam);
  138. }
  139.  
  140. void Kiir_Indulo(struct indulo_allomas p_indulo){
  141. printf("%s, %s %s.\n\n", p_indulo.telepules, p_indulo.kozterulet, p_indulo.hazszam);
  142. }
  143.  
  144. void Kiir_Cel(struct cel_allomas p_cel){
  145. printf("%s, %s %s.\n\n", p_cel.telepules, p_cel.kozterulet, p_cel.hazszam);
  146. }
  147.  
  148. void Kiir_Allomas(struct utvonal_allomas p_allomas){
  149. printf("Indito allomas:\n");
  150. Kiir_Indulo(p_allomas.indulo);
  151. printf("Celallomas:\n");
  152. Kiir_Cel(p_allomas.cel);
  153. }
  154.  
  155. void Kiir_Utvonalengedely(struct utvonalengedely p_utvonalengedely){
  156. printf("\nAz utvonalengedely a kovetkezo:\n\n");
  157. printf("Sofor neve:\n");
  158. Kiir_Sofor(p_utvonalengedely.sofor);
  159. printf("Jarmu adatai:\n");
  160. Kiir_Jarmu(p_utvonalengedely.jarmu);
  161. Kiir_Allomas(p_utvonalengedely.allomas);
  162. }
  163.  
  164. int main(){
  165. struct utvonalengedely u;
  166. u=Beker_utvonalengedely();
  167. Kiir_Utvonalengedely(u);
  168. return 0;
  169. }
  170.  
Success #stdin #stdout 0.01s 1680KB
stdin
Kovacs
Sandor Jozsef
Lada Niva
abc-1234
abc-123
Los Angeles
Main street
90210
San Francisco
Bay road
42
stdout
Kerem a sofor nevet:
Vezeteknev:
Keresztnev:
Kerem a gepjarmu adatait:
a Gepkocsi tipusa:
rendszama:
Tul hosszu! Maximum 7 betut irjon be!
Kerem az allomasadatokat:
Telepules neve:
Kozterulet neve:
Hazszam:
Telepules neve:
Kozterulet neve:
Hazszam:

Az utvonalengedely a kovetkezo:

Sofor neve:
Kovacs Sandor Jozsef

Jarmu adatai:
Lada Niva abc-123

Indito allomas:
Los Angeles, Main street 90210.

Celallomas:
San Francisco, Bay road 42.