Ошибка в функциях вывода данных в файл - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Программа вводит записи, состоящие из 3 полей в 2 разных файла по выбору. Но в чём-то ошибка в функциях вывода данных в файл. А именно в строчке
Листинг программы
  1. scanf("%s",port->str1);
Т.к. новичёк вопрос ещё- можно ли scanf("%s",a), где char *a
Листинг программы
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. struct Record{
  4. char *str1;
  5. char *str2;
  6. char *str3;
  7. } *port=NULL;
  8. void input1();
  9. void input2();
  10. int main(){
  11. int c;
  12. printf("This program let you add cards of ports and ships\n");
  13. printf("If you want to add port card press 1\nTo add ship card press 2\n");
  14. printf("To close program press 3\n"); //zamenil escape na 3. Kak sdelat escape?
  15. if ((c=getchar())==51){
  16. exit (0);
  17. }
  18. else if (c==49){//Kod 1
  19. input1();
  20. }
  21. else if (c==50){//Kod 2
  22. input2();
  23. }
  24. return 0;
  25. void input1(){
  26. FILE *f=fopen("ports.dat","ab");
  27. int c;
  28. int flag=0;
  29. if (f==NULL){
  30. perror("Error opening file");
  31. }
  32. while(!flag){
  33. printf("You are filling information about port\n\n\n");
  34. printf("Fill-in port name\n");// Vstavit proverki. Kakie?
  35. scanf("%s",port->str1);
  36. fprintf(f,"%s",port->str1);
  37. printf("Fill-in country\n");
  38. scanf("%s",port->str2);
  39. fprintf(f,"%s",port->str2);
  40. printf("Fill-in port's sea\n");
  41. scanf("%s",port->str3);
  42. fprintf(f,"%s",port->str3);
  43. printf("Return to main menu press 3. Otherwise press any key\n");
  44. //scanf("%c",&a);//
  45. if ((c=getchar())==51){//Mojno odni () ybrat ?Kak v windows proverit escape i enter?
  46. flag=1;
  47. }
  48. }
  49. fclose(f);
  50. }
  51. void input2(){
  52. FILE *f=fopen("ships.dat","ab");
  53. int c;
  54. int flag=0;
  55. if (f==NULL){
  56. perror("Error opening file");
  57. }
  58. while(!flag){
  59. printf("You are filling information about ship\n\n\n");
  60. printf("Fill-in ship name\n");// Vstavit proverki
  61. scanf("%s",port->str1);
  62. fprintf(f,"%s",port->str1);
  63. printf("Fill-in port of departure\n");
  64. scanf("%s",port->str2);
  65. fprintf(f,"%s",port->str2);
  66. printf("Fill-in arrival port\n");
  67. scanf("%s",port->str3);
  68. fprintf(f,"%s",port->str3);
  69. printf("Return to main menu press escape. Otherwise press any key\n");
  70. //scanf("%c",&a);//
  71. if ((c=getchar())==27){//Mojno odni () ybrat ?Kak v windows proverit escape i enter?
  72. flag=1;
  73. }
  74. }
  75. fclose(f);
  76. }
up. Нужны советы

Решение задачи: «Ошибка в функциях вывода данных в файл»

textual
Листинг программы
  1. struct my_struct {
  2.    char str1[20];
  3.    char str2[20];
  4.    char str3[20];
  5. } *tmp;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы