2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Уточнить по поводу структур
Сообщение21.11.2013, 19:59 


20/10/12
235
Добрый вечер, участники форума! Для все той же задачи - записной книжки, я решил использовать структуры, но пока не очень понятно как с ними в этом плане работать. Прошу Вас помочь мне с этим разобраться.
Вот у меня есть скажем простейшая структура одной записи.
Используется синтаксис C++
struct person{              /*Структура записи*/
        unsigned char name;
        unsigned char surname;
        unsigned char number;
};
 


Как работать с ней, скажем для записи данных в файл?
Скажем мы считываем это как три строчки?(не очень удачно)
Нужно вводить три указателя на каждое из полей?
Или как-то используется указатель на структуру?
Используется синтаксис C++
/*Все это в цикле*/
         printf("Name: ");
         gets(NewData->name);
/*И использовать fputs?*/
/*Вполне возможно, что я написал здесь что-то ужасное*/
         printf("Surname: ");
         gets(NewData->surname);
         printf("Number: ");
         gets(NewData->number);
/* Все это в цикле */
 

 Профиль  
                  
 
 Re: Уточнить по поводу структур
Сообщение21.11.2013, 20:06 
Заслуженный участник


27/04/09
28128
shukshin в сообщении #791123 писал(а):
Как работать с ней, скажем для записи данных в файл?
Вас устраивает имя, фамилия и номер каждые из одного символа? Если нет, лучше работать с другой структурой.

 Профиль  
                  
 
 Re: Уточнить по поводу структур
Сообщение21.11.2013, 20:26 


20/10/12
235
Используется синтаксис C++
struct person{              /*Структура записи*/
        unsigned char *name;
        unsigned char *surname;
        unsigned char *number;
};

arseniiv, пожалуй, что нет :D

-- 21.11.2013, 20:46 --

Пока только до такой ерунды додумался
код: [ скачать ] [ спрятать ]
Используется синтаксис C++
struct person{              /*Структура записи*/
        unsigned char *name;
        unsigned char *surname;
        unsigned char *number;
};
int main(void)
{
        FILE *MyBook;
    struct person NewData;
        struct person *pname = malloc(BUFF*sizeof(unsigned char *));
        struct person *psurn = malloc(BUFF*sizeof(unsigned char *));
        struct person *pnumb = malloc(BUFF*sizeof(unsigned char *));
        unsigned char *mode  = malloc(MINIBUFF * sizeof(unsigned char)); /*Указатель для управления*/
   
        printf("MyBook 1.0\nEnglish language is used(!) \nChoose your mode:");    /*Ввод в консоль*/
    printf("\nInput \"Read\" or \"Add\"\n");
    gets(mode);
        if(!strcmp(mode,"Add"))//////////////ADD////////////////////////////
        {
    if((MyBook = fopen("MyBook.txt", "a+")) == NULL)//режим дописывания
         printf("Writing MyBook.txt error");
        printf("Please, input new data\nto stop press <Enter>\n");
         do{
     printf("Name: ");                           /*Конечно код не рабочий.*/
         gets(pname->NewData.name); /*А как надо на самом деле?*/
         printf("Surname: ");
         gets(psurn->NewData.surname);
         printf("Number: ");
         gets(pnumb->NewData.number);
         }while(strcmp(pname->NewData.name,""));
         fclose(MyBook);
        }///////////////ВНИЗУ ПРОДОЛЖЕНИЕ main(), оно не так важно////////////////////////////////////
return 0;
}

int modecorrect(char *str)        //Проверка управления
{
 if(!strcmp(str, "Add") || !strcmp(str, "Read"))
        return 1;
 return 0;
}
 

 Профиль  
                  
 
 Re: Уточнить по поводу структур
Сообщение22.11.2013, 20:07 


26/11/11
134
а что вам мешает 1 раз воспользоваться функцией fprintf? Она для того, что-бы записывать в файл

(Оффтоп)

Кстати, у вас больше 1 символа не запишется в каждом элементе структуры т.к char эт символьный тип данных, можно написать как
Код:
struct person{             
        unsigned char name[10];
        unsigned char surname[10];
        unsigned char number[15];
};

тогда можно будет записать в имени, к примеру, слово из 10 символов

 Профиль  
                  
 
 Re: Уточнить по поводу структур
Сообщение22.11.2013, 20:33 


20/10/12
235
BAHOO, спасибо огромное, не представляете как это помогло :D

 Профиль  
                  
 
 Re: Уточнить по поводу структур
Сообщение22.11.2013, 21:25 


26/11/11
134
не за что)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group