#1 17.02.07 14:57
[C] Помогтте
Код::
#include <stdio.h>
#include <string.h>
#include <conio.h>
main()
{
char s[20];
long i;
char const *pas="exit";
randomize();
do
{
gets(s);
if (s == pas) {printf("OK: '%s' /n", s);};
}
while (s != "exit");
getch();
}Код::
if (s == pas) {printf("OK: '%s' /n", s);};не работает! почему?
Offline
#8 19.02.07 21:44
Re: [C] Помогтте
Код::
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <alloc.h>
#include <stdlib.h>
struct TData
{
char* name;
int id;
float num;
};
TData Data;
TData *pData;
/************************************ HELP ************************************/
void help()
{
printf("************************************ HELP ************************************\n");
printf("Help:\n");
printf("\"file open\", \"fo\" \tLoad file data base\n");
printf("\"file save\", \"fs\" \tSave file data base\n");
printf("\"new base\", \"nb\" \tCreate new base\n");
printf("\"list\", \t List the base\n");
//printf();
}
/********************************** NEW BASE ************************************/
void n_b()
{
printf("********************************** NEW BASE ************************************\n");
char com[20];
int id;
float num;
TData Tmp;
printf("\tNew Base\t\n");
scanf("Enter name base: %s", Data.name);
Data.id = 1;
pData = (TData*)calloc(Data.id, sizeof(TData));
do
{
printf("\tEnter comand: ");
gets(com);
if (strcmp(com, "add")==0)
{
printf("\t\tEnter Name: ");
gets(Tmp.name);
printf("\t\tEnter id: ");
gets(com);
Tmp.id = atoi(com);
printf("\t\tEnter num: ");
gets(com);
Tmp.num = atof(com);
pData = (TData*)realloc((pData), Data.id++);
pData[Data.id-1] = Tmp;
printf("Tmp.name:%s\n", pData[Data.id-1].name);
};
}
while (strcmp(com, "") != 0);
}
/********************************** List **********************************/
void list()
{
int i;
printf("************************************ List ************************************\n");
for (i=0; i < Data.id; ++i)
{
printf("%i\tName: \t%s\n", i, (char*)pData[i].name);
printf("%i\tId: \t%i\n", i, pData[i].id);
printf("%i\tNum: \t%f\n", i, pData[i].num);
}
}
/******************************** Command *********************************/
void com(char com[20])
{
printf("Command: %s\n", com);
if (strcmp(com, "help")==0) help();
if ((strcmp(com, "nb")==0) || (strcmp(com, "new base")==0)) n_b();
if (strcmp(com, "list")==0) list();
}
main()
{
char s[20]=" ";
long i;
char const *pas="exit";
do
{
printf("\nEnter you command: ");
gets(s);
if (strcmp(s, "")!=0) {com(s);};
}
while (strcmp(s, "exit") != 0);
printf("\n\t\tExit: press any key\n");
getch();
free(pData);Не остаётся pData.name
Offline
#10 20.02.07 14:55
#11 21.02.07 17:23
Re: [C] Помогтте
zombie написал(а):
scanf("Enter name base: %s", Data.name);
а это че такое?! ))))
ты примеры кода когда-нибудь в книгах смотрел? за такой код под трибунал отдавать надо)))
Может подскажешь как правильно?
Offline
#12 21.02.07 17:25
Re: [C] Помогтте
Код::
printf("%i\tName: \t%s\n", i, (char*)pData[i].name);здесь выводит "чушь", вместо нормальной строки.
Offline
#13 21.02.07 17:42
#14 21.02.07 18:06
Re: [C] Помогтте
APOCALYPSES, рыдаю. Ты ведь вообще ничего не смыслишь. Я же сказал, сначала книгу почитай, потом сюда лезь. А то демонстрируешь всем полное непонимание самых элементарных основ программирования на С.
Смотри на определение своей структуры, там указатель на char. Под него ты память выделил calloc'ом, который забил все выделенную память нулями. Куда указывает твой указатель? Правильно, в никуда. А ты пытаешься в него писать scanf'ом, потом прочитать printf'ом. Вот и результат.
GrAnD, не Андрюха не так, у него все правильно, просто указатель мусор содержит опять же.
Offline
#15 21.02.07 18:41
#16 22.02.07 00:16
#17 22.02.07 00:34
#18 22.02.07 12:31
#19 25.02.07 17:54
#20 25.02.07 19:30
#21 26.02.07 10:23
#22 26.02.07 10:49
#23 26.02.07 16:11
#24 26.02.07 16:23
Re: [C] Помогтте
я по Подбельскому училась, но лучше Валентины Павловны никто не научит
Offline

