2014 dxdy logo

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

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




 
 Уточнить по поводу структур
Сообщение21.11.2013, 19:59 
Добрый вечер, участники форума! Для все той же задачи - записной книжки, я решил использовать структуры, но пока не очень понятно как с ними в этом плане работать. Прошу Вас помочь мне с этим разобраться.
Вот у меня есть скажем простейшая структура одной записи.
Используется синтаксис 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 
shukshin в сообщении #791123 писал(а):
Как работать с ней, скажем для записи данных в файл?
Вас устраивает имя, фамилия и номер каждые из одного символа? Если нет, лучше работать с другой структурой.

 
 
 
 Re: Уточнить по поводу структур
Сообщение21.11.2013, 20:26 
Используется синтаксис 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 
а что вам мешает 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 
BAHOO, спасибо огромное, не представляете как это помогло :D

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

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group