Ошибка в функциях вывода данных в файл - C (СИ)
Формулировка задачи:
Программа вводит записи, состоящие из 3 полей в 2 разных файла по выбору. Но в чём-то ошибка в функциях вывода данных в файл. А именно в строчке
Т.к. новичёк вопрос ещё- можно ли scanf("%s",a), где char *a
Листинг программы
- scanf("%s",port->str1);
Листинг программы
- #include "stdio.h"
- #include "stdlib.h"
- struct Record{
- char *str1;
- char *str2;
- char *str3;
- } *port=NULL;
- void input1();
- void input2();
- int main(){
- int c;
- printf("This program let you add cards of ports and ships\n");
- printf("If you want to add port card press 1\nTo add ship card press 2\n");
- printf("To close program press 3\n"); //zamenil escape na 3. Kak sdelat escape?
- if ((c=getchar())==51){
- exit (0);
- }
- else if (c==49){//Kod 1
- input1();
- }
- else if (c==50){//Kod 2
- input2();
- }
- return 0;
- void input1(){
- FILE *f=fopen("ports.dat","ab");
- int c;
- int flag=0;
- if (f==NULL){
- perror("Error opening file");
- }
- while(!flag){
- printf("You are filling information about port\n\n\n");
- printf("Fill-in port name\n");// Vstavit proverki. Kakie?
- scanf("%s",port->str1);
- fprintf(f,"%s",port->str1);
- printf("Fill-in country\n");
- scanf("%s",port->str2);
- fprintf(f,"%s",port->str2);
- printf("Fill-in port's sea\n");
- scanf("%s",port->str3);
- fprintf(f,"%s",port->str3);
- printf("Return to main menu press 3. Otherwise press any key\n");
- //scanf("%c",&a);//
- if ((c=getchar())==51){//Mojno odni () ybrat ?Kak v windows proverit escape i enter?
- flag=1;
- }
- }
- fclose(f);
- }
- void input2(){
- FILE *f=fopen("ships.dat","ab");
- int c;
- int flag=0;
- if (f==NULL){
- perror("Error opening file");
- }
- while(!flag){
- printf("You are filling information about ship\n\n\n");
- printf("Fill-in ship name\n");// Vstavit proverki
- scanf("%s",port->str1);
- fprintf(f,"%s",port->str1);
- printf("Fill-in port of departure\n");
- scanf("%s",port->str2);
- fprintf(f,"%s",port->str2);
- printf("Fill-in arrival port\n");
- scanf("%s",port->str3);
- fprintf(f,"%s",port->str3);
- printf("Return to main menu press escape. Otherwise press any key\n");
- //scanf("%c",&a);//
- if ((c=getchar())==27){//Mojno odni () ybrat ?Kak v windows proverit escape i enter?
- flag=1;
- }
- }
- fclose(f);
- }
up. Нужны советы
Решение задачи: «Ошибка в функциях вывода данных в файл»
textual
Листинг программы
- struct my_struct {
- char str1[20];
- char str2[20];
- char str3[20];
- } *tmp;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д