Kezdőoldal » Számítástechnika » Programozás » Miért nem íratja ki a program...

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?

Figyelt kérdés

typedef struct verseny {

char nev[50];


}verseny;


main()

{

verseny v3;

v3.nev[50]="Nagy Kalman";

puts(v3.nev);


}



2018. jan. 25. 18:58
 1/8 anonim ***** válasza:
Többek között mert Te nem a tömbön belülre írod a szöveget hanem a tömb utánra.
2018. jan. 25. 19:07
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
Kitudnád fejteni,hogy hogyan kellene akkor megvalósítani?
2018. jan. 25. 19:31
 3/8 anonim ***** válasza:

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;

2018. jan. 25. 20:01
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:

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

2018. jan. 25. 20:24
 5/8 sharkxxx ***** válasza:
strcpy(v3.nev, "Nagy Kalman");
2018. jan. 25. 20:40
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:

Köszönöm szépen minden válaszolónak :)

#5 ezzel a metodikával sikerült megoldani a problémát.

2018. jan. 25. 20:50
 7/8 anonim ***** válasza:

"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.

2018. jan. 26. 01:43
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

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.

2018. jan. 26. 16:00
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!