powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / структуры в Borland C
15 сообщений из 15, страница 1 из 1
структуры в Borland C
    #34220121
рол88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, подскажите как правильно объявлять структуры в Borland C(у меня он не хочет видеть
при пошаговой ) и вообще какие глюки могут быть со структурами. Я новичек, использовал
учебник Семакина "Основы Программирования", но получается не так:(

struct student{char fam[20];
int gruppa, ball;
};
student stud[3];
Еще бывает, что в цикле при, допустим, вводе данных в stud .fam программа вылетает????
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220124
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
структуры сейчас немодно :) используй клас, клас - таже структура
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class student
{
     public:
     char fam[ 20 ];
     int gruppa;
     int ball;
};
student stud[ 3 ];
stud[ 1 ].fam = "Ivanov";
stud[ 1 ].gruppa =  304 ;
stud[ 1 ].ball =  2 ;
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220128
рол88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно спасибо, но все же нам в универе задали со структурами. И есть ли вообще в
Borland глюки или это только недостаток знаний и предрассудки?
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220129
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 рол88
Да ничего там вроде хитрого нет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
/* main.c */
struct student 
{
    char fam[ 20 ];
    int group;
    int ball;
};
struct student stud[] = {
    {"Ivanov",  1 ,  5 },
    {"Petrov",  2 ,  5 },
};
...

Либо можно ввести алиас типа, тогда спецификатор struct можно опустить:

Код: plaintext
1.
2.
3.
4.
typedef struct student 
{
...
} student_t;
student_t stud = {...};

На счет остального надо смотреть код.

2 sasska304
Я бы на вашем месте, молодой человек, поостерегся изрекать глупости на счет моды ;)
Да и код который вы привели
Код: plaintext
stud[ 1 ].fam = "Ivanov";
сомнителен.
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220130
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 рол

Я так понял, мы говорим о С, да?
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220132
рол88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полный код :
#include <stdio.h>
#include <conio.h>
main()
{
int i=0;
struct student{char fam[20];
int gruppa, ball;
};
student stud[3];
clrscr();
for(;i<3;i++)
{
printf("\n Vvedite famil, gruppu i ball:");
scanf("%s",stud .fam);
scanf("%d",&stud.gruppa);
scanf("%d",&stud.ball);
}
for(;i<3;i++)
{
printf("| %s | %d | %d |",stud.fam,stud.gruppa,stud.ball);
}
getch();
return 0;
}
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220135
рол88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему может быть знаете глючит такая прога (эта со "строками"):
#include <stdio.h>
#include <string.h>
#include <conio.h>


main()
{
int i,j,m,k,t;
char A[80],B[80],C[80],D[80];
clrscr();
printf("\nVvedite 1-e predlogenie:");gets(A);
printf("\nVvedite 2-e predlogenie:");gets(B);
t=m=k=0;
for(i=0;i<strlen(A);i++)
{
if(A !=' '&& A!='.')
{
C[k]=A;
k++;
}
else
{

for(j=0;j<strlen(B);j++)
{
if(B[j]!=' '&&B[j]!='.')
{
D[m]=B[j];
m++;
}
else
{
m=0;
if(strcmp(C,D)==0)
{
t++;
}
}

}
if(t>=1)
printf("\n%s",C);

t=k=m=0;
}
}
getch();
return 0;
}
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220136
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вылетать она может если вводится в поле фамилия более 19 символов - то есть максимальное число символов, которое может вместить поле fam.
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220151
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ бы на вашем месте, молодой человек, поостерегся изрекать глупости на счет моды ;)
ну на то эти и форум чтоб иногда ляпнуть глупость :)

так уже получше будет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class student
{
    public:
    char *fam;
    int group;
    int ball;
};
student st[ 3 ];
st[ 0 ].fam = "Иванов";
st[ 1 ].fam = "Петров;
st[2].fam = "Сидоров";
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220154
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так будет совсем хорошо дабы подчеркнуть ваши намерения, что вы инициализировали поле fam константой и менять это поле не собираетесь ;)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class student
{
    public:
    char const *fam;
    int group;
    int ball;
};
student st[ 3 ];
st[ 0 ].fam = "Иванов";
st[ 1 ].fam = "Петров;
st[2].fam = "Сидоров";

а то одно неосторожное движение и SF или AV вам обеспечено:

Код: plaintext
st[ 0 ].fam[ 0 ] = 'F';
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220162
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
void __fastcall FillFam(const char *str, char *fam)
{
   memset(fam, '\0',  10 );
   memcpy(fam, str,  10 );
}
//---------------------------------------------------------------------------
а потом
class student
{
    public:
    char fam[ 10 ];
    int group;
    int ball;
};
student st[ 3 ];
FillFam("sfsdfsdfsdf", st[ 0 ].fam);
FillFam("asdfghjkl;b", st[ 1 ].fam);
FillFam("sfsdfsdfsdf", st[ 2 ].fam);

...
Рейтинг: 0 / 0
структуры в Borland C
    #34220177
я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
я
Гость
а проверку на то что str < 10 символов?
а вот тут то как раз дурной тон... пользоваться memcpy для строк.
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220194
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно, и думал туда написать на всяк выпадок проверку...
да просто както с AnsiString работаю, то не заганяюсь по поводу размера :)
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220331
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sashka304 пишет:
> структуры сейчас немодно :) используй клас, клас - таже структура

В Borland C конечно дофига у него классов будет ! Тут уж не до моды.
Он что-то типа 1990 года, тогда С++ -компиляторов разве что C-front был.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
структуры в Borland C
    #34220731
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда понятно. тут вспомнил что у нас на работе студент писал прогу для ТЭЦ под дос, то тоже вроде говорил что нету класов а только структуры
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / структуры в Borland C
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]