Miért nem íratja ki a program a tömbön belüli szöveget? A kimenet csak karakterek pl. :$, ˇ Ha gets-el bekérem a szöveget akkor nincsen probléma, normálisan kiírja. Hol hibáztam?
typedef struct verseny {
char nev[50];
}verseny;
main()
{
verseny v3;
v3.nev[50]="Nagy Kalman";
puts(v3.nev);
}
v3.nev[50]="Nagy Kalman";
ez a sor rossz, mert itt te nem méretet adsz már meg, mert az van, ez egy adattag. És annak az adattagnak, ami tömb, az 50-es helyére akarsz írni (tehát az 50 hosszú név mező 51-edik karakterére akarsz írni 12 karaktert).
ennyi a megoldás:
v3.nev="Nagy Kalman"
És jegyezd meg, amit a struktúrában megadtál tagot, azt utána csak hivatkozod, azért nem kell a mainbe a mérete.
Jótanács: Ha szabályos kódot akarsz írni, akkor a main az int main() legyen vagy int main(void), és legyen a végén egy return 0;
Nekem is eszembe jutott,hogy esetleg rögtön felismeri a struct-ból és kihagyom '[50]'<-ezt,de ha kihagyom akkor ezt írja:
error: assignment to expression with array type
Köszönöm szépen minden válaszolónak :)
#5 ezzel a metodikával sikerült megoldani a problémát.
"tehát az 50 hosszú név mező 51-edik karakterére akarsz írni 12 karaktert"
Igazából nem 12 karaktert, csak a string literál címét, merthogy ez nem inicializálás és strcpy sincs.
Mondjuk ez csak megjegyzés, a lényegen nem változtat.
Tökéletesen igazad van, bocsi, túlságosan átszoktam más programnyelvre :\
Főképp a javára a string típussal, és elkezdtem felesben keverni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!