Kezdőoldal » Számítástechnika » Programozás » ANSI C-ben mi a legeslegrövide...

ANSI C-ben mi a legeslegrövidebb lehetséges módja annak, hogy tetszőleges hosszúságú stringet olvassak be <ENTER> leütéséig?

Figyelt kérdés

2014. nov. 19. 23:48
 1/7 anonim válasza:
getline
2014. nov. 20. 00:01
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

???


Bocsi, de le tudnád írni bővebben, ha már egyetlen - számomra eddig eléggé ismeretlen - utasítással akarod megoldani a dolgot?

Mert elég furcsa, hogy ennyire egyszerű legyen a dolog. Akkor máshol miért írnak erre mindig külön függvényt???

2014. nov. 20. 00:26
 3/7 anonim válasza:

[link]

Nyilván annyival módosul a történet a példához képest, hogy a file itt az stdin. (fp helyett stdin kell)

2014. nov. 20. 00:55
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

char lanc[100];

gets(lanc);

2014. nov. 20. 14:34
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Isten őrizzen a gets-től. Olyan security hole-t csinál a programban, hogy öröm lesz nézni. Inkább akkor fgets. Használata:


fgets(a tömb, amibe a string-et tárolod, hány karaktert akarsz legfeljebb beolvasni, a fájl, ahonnan olvasol)


Példa:

char str[51];

fgets(str, 50, stdin);

2014. nov. 20. 15:21
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

Tudjátok, csak az a gond, hogy sajna ezek a parancsok mind tiltottak egyaránt a középsuliban, és az egyetemen is. :/

Mondván, hogy nem szabványos függvények.


Bár ettől függetlenül nektek kell igazat adjak, mert a kérdést megválaszoltátok. Más dolog az, hogy én így sem jutottam előbbre.


Amúgy a gets() és az fgets()-ről amatőr kitekintgetéseimből a programozás terén mintha az rémlene, hogy dinamikus tömbökkel nem működik... ;)

2014. nov. 20. 18:19
 7/7 anonim ***** válasza:

ez nekem anno működött


char *beolvas(){

char c;

int i=0;

int meret=20;//ritkan hosszab egy szó 20 betunel

char *string= malloc (meret*sizeof(char)+1);

do{

i=0;

while( (c=getchar()) !='\n' && c!=EOF ){

if(meret-1==i){//ha megis

meret=meret*2;

string = realloc(string, meret*sizeof(char)+1);//akkor ujrameretezi a tombot a ketszeresere

}

string[i]=c;

i=i+1;

}

string[i]='\0';//biztos ami biztos, legyen lezárva

}while(string[0]=='\0');

return string;

}

2014. nov. 23. 03:46
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!