Hirdetés
-
Kapnak egy rakás reklámot a Roblox játékosai
it Videohirdetésekre készülhetnek ezentúl a virtuális világokban a Roblox játékosai.
-
Snapdragon 8-as szériával várhatók a Honor 200-ak?
ma A Honor 200 állítólag a 8s Gen 3-at, a 200 Pro változat pedig a 8 Gen 3-at használja majd.
-
Két Zen 5-ös dizájnjának mintáit is szállítja már az AMD
ph A szerverpiacra szánt Turin platform, illetve a mobil szintre nevező Strix Point érhető el a főbb partnerek számára.
Új hozzászólás Aktív témák
-
gygabor88
tag
válasz Dirty_Pio #804 üzenetére
Most pici jobban ránéztem a kódra. A fordító azért is szólni fog, amit fentebb írtam. Nem az a lényeg, hogy %i vagy %d, hanem, hogy kell a printf-nek következő paraméter is. Az is probléma viszont, hogy pár dolgot elírtál, pl printf helyett pritnf -t írtál, printstudents nevű függvényed pedig nincs, szintén elírás miatt, emiatt nem találja ezeket a függvényeket. Strcpy-t sem fogja felismerni, mert nincs betolva a megfelelő header fájl. Így már megeszi a fordító:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXST 20
#define MAXNL 50
struct student {
char *name;
float mark;
} ;
int getname(char *p)
{
int i=0;
char *q,c;
q=p;
while ( (c=getchar()!='\n') && i<MAXNL)
{
q[i]=c;
i++;
}
q[i]='\0';
return (i);
}
void read_student ( struct student a[], int n)
{
char *p;
int i,e;
p=malloc(sizeof(char)*MAXST);
for (i=0;i<n;i++)
{
printf("\n the %d th student is:",i);
e=getname(p);
a[i].name=malloc(e*sizeof(char));
strcpy(a[i].name,p);
printf("\n mark for %s :",a[i].name);
scanf("%f",&a[i].mark);
}
free(p);
}
void printstudents(struct student a[], int n)
{
int i;
struct student *p;
p=a;
for (i=0;i<n;i++)
printf("%s\n",a[i].name);
}
int main(void){
struct student a[MAXST];
int nstdnt;
printf("students nr is:");
scanf("%i",&nstdnt);
read_student(a,nstdnt);
printstudents(a,nstdnt);
return(0);
}[ Szerkesztve ]
-
gygabor88
tag
válasz Zwiebel #1021 üzenetére
C-hez könyv: Brian Kernighan & Dennis Ritchie A C programozási nyelv
C++ könyv: Bjarne Stroustroup A C++ programozási nyelvEzenkívül rengeteg más a témával kapcsolatos könyvet fogsz találni a boltokban, de mind hulladék. Ezt komolyan mondom. Elég ha a terjdelmeket összehasonlítjuk, már akkor is látszik. A lényeg, hogy ha ezen a vonalon akarsz elindulni, akkor először a C-s könyvet utána a C++ könyvet olvasd ki. Utóbbit nem árt többször is elolvasni. Már csak azért is ezeket vedd meg, mert ha később programozónak tanulsz, akkor egyetemen is ezekből kell majd tanulnod.
-
gygabor88
tag
válasz sghc_toma #1023 üzenetére
Anno C++ volt az első programnyelv, amit megtanultam, utána C. Akkor úgy éreztem gyorsabban eljutottam volna ugyanoda, ha C lett volna a kezdőnyelv, ezért ajánlottam így, de nyilván mindenkinek más az ideális. Stroustroup könyv is jó kezdőnek, ha mellette példakódokat is néz a netről minden témakörhöz. A többi könyvvel az a baj, hogy felszínesen átrohannak minden témán , aztán amikor az olvasó belenéz egy open source program forrásába, akkor nem érti, mert alapvető nyelvi elemeket nem ismertetett a könyv.
-
gygabor88
tag
Ennek működnie kell:
char* line = "25asifh 125 dfis df 25 25 25 dsojg 2525";
const char* pattern = "25";
char* tmp = line;
int count = 0;
do
{
tmp = strstr(tmp,pattern);
if(tmp)
{
char *ch1 = tmp;
char *ch2 = tmp;
ch1--;
ch2 = ch2 + strlen(pattern);
if(((*ch2) == ' ' || (*ch2) == '\0') && (ch1 < line || (*ch1) == ' '))
{
count++;
}
tmp = tmp + strlen(pattern);
}
}while(tmp);[ Szerkesztve ]
-
gygabor88
tag
válasz Elektromann #1051 üzenetére
Le kell fordítani a kódot egy fordítóval. VS 2008 menüjében valami olyat keress, hogy Build talán a project menüponton belül van, ha jól emlékszem.
-
gygabor88
tag
válasz Elektromann #1053 üzenetére
Nincs most a gépemen VS, de valószínűleg az a baj, hogy csak a fájlt írtad meg, de nem szervezted project-be. File->New Project itt, amit létrehoz forrásfájlt, abba másold a saját kódod és Build.
De szerintem neked egy egyszerűbb IDE kellene először. Code:locks nevű progit töltsd le, és azzal tudsz kódot is szerkeszteni, meg lejön vele a fordítóprogram is. -
gygabor88
tag
válasz Elektromann #1055 üzenetére
Mi a hibaüzenet? Nálam hibátlanul fordul. Project-be tetted?
-
gygabor88
tag
válasz Elektromann #1062 üzenetére
File->New->Project->Console Application
Itt megkérdezi, hogy mit hova pakoljon, meg hasonlók. Létre fog hozni egy forrásfájlt. Kitörlöd a tartalmát és beírod a kódod. -
gygabor88
tag
válasz Black-core #1076 üzenetére
Kezdetnek ezt találtam: [link]
Ez nagyjából a C alapjain végig is visz. Ha mélyebben akarsz vele foglalkozni, akkor keress rá Kernighan nevére, ő írt egy nagyon jó könyvet C-ről.[ Szerkesztve ]
-
gygabor88
tag
válasz Black-core #1078 üzenetére
Magyart neten nem tudok mutatni. Esetleg valami könyvet érdemes lenne megvenni. Computerbooks-nak vannak kifejetten kezdőknek szóló könyvei. Az nem probléma, hogy nem vágod az angolt. Én 13 évesen kezdtem szintén C-vel, angolul egyáltalán nem tudtam, egy netes angol-magyar szótárral hámoztam ki a mondatok értelmét. Nagyon lassan haladtam, de olyan 100-150 szót kellett ismerni és az informatikai szövegeket jól le tudtam fordítani. Ezt azért írom le, mert mindenképp angolul fogod megtalálni a legjobb forrásokat programozáshoz a neten. Illetve sok jó könyvet le sem fordítanak magyarra, mert mire kész lenne addigra elavul a könyv tartalma.
De Kernighan könyvét pl lefordították: [link]
[ Szerkesztve ]
-
gygabor88
tag
válasz Black-core #1080 üzenetére
Dev-C++ és Code:locks a két legegyszerűbb fejlesztői környezet. Amelyik tetszik azt válaszd.
-
gygabor88
tag
Sosem foglalkoztam telefonokkal, de ha egy forráskódból futtatható binárist készítesz, akkor abból nem kapható vissza az eredeti forráskód. Az azonosítókat nem fordítják bele, így pl változóneveket, függvényneveket biztos nem lehet visszahozni. Ha van a telefonokra valami assembly szerű nyelv, akkor ilyen assembly utasításokra valószínűleg vissza lehet fejteni.
-
gygabor88
tag
Nagyjabol igen. Ha van egy kulcsod es egy szamod, amirol tudod, hogy a kulccsal es a XOR muvelettel lett titkositva, akkor a XOR-t vegrehajtva a titkositott szamon visszakapod az eredetit. A fenti feladatod azt hasznalja ki, hogy a C-ben a char integralis tipus, igy a begepelt szoveg minden karakteren tudsz bitmuveleteket vegezni.
[ Szerkesztve ]
-
gygabor88
tag
válasz 0xmilan #4261 üzenetére
Ket hibat latok elsore. Az egyik, hogy az "uj" char* elemeinek foglalsz helyet mallockal, de a "lista" inicializalatlan elemeibe probalsz masolni strcpyvel. A masik, hogy az ilyen inicializalasoknal
uj->ker=(char*) malloc(strlen(tempk)*sizeof(char));nem veszed figyelembe, hogy majd a lezaro \0-nak is kellene egy hely a karakterlanc vegen.
+ nincs ertelme NULL-lal meghivni a beolvas fuggvenyt, bar ebben az esetben nem emiatt mukodik rosszul a kod.
[ Szerkesztve ]
-
gygabor88
tag
válasz 0xmilan #4263 üzenetére
uj->ker[strlen(tempk)+1]='\0';
Ezeken a helyeken tulindexeled a tombot. Ha a tomb strlen(tempk) + 1 elembol all, akkor az utolso elemre az strlen(tempk) indexszel tudsz hivatkozni. Amugy a fenti explicit \0 iras nem szukseges, mert az strcpy a lezaro \0-t is atmasolja. Tovabba, ha mar ismert elore a stringek maximalis hossza, mint a temp valtozoid eseten, akkor erdemes lenne fix hosszal tarolni oket a struct-ban es egybol ezekbe olvasni. Igy megkimelned magad egy csomo pointerezestol es masolgatastol.
+ erdemes lenne megismerkedned valami debuggerrel, amivel sorrol sorra lepkedve tudnad futtatni a programodat, hogy az ilyen programmeghalos hibakat konnyebben megtalald. Kezdetben boven eleg lesz egy alap gdb tutorial a break, c, n, s parancsokkal
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!