Portál AbcLinuxu, 26. dubna 2024 21:52


Dotaz: Funkce gets nefunguje

31.1.2004 14:49 Jan Odvárko | skóre: 10
Funkce gets nefunguje
Přečteno: 137×
Odpovědět | Admin
Jsem začátečník v Linuxu a píšu v Emacsu C/C++ aplikace. Narazil jsem na problém při použití funkce gets - při překladu mi překladač píše, že funkce je nebezpečná a neměla by být používána. Jak to vyřešit? Nějakou alternativní knihovnou? Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.1.2004 14:58 Petr
Rozbalit Rozbalit vše Funkce gets nefunguje
Odpovědět | | Sbalit | Link | Blokovat | Admin
Knihovnu menit nemusis, staci pouzit jiny prikaz a to:
char *fgets(char *s, int size, FILE *stream);
Vice viz.: man fgets
31.1.2004 15:05 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Funkce gets nefunguje
Odpovědět | | Sbalit | Link | Blokovat | Admin
getc ?

Záleží co potřebujete udělat, prostě budu si to číst po znacích a kontrolovat meze abych nepřekročil velikost alokované ram pro ten string.
31.1.2004 15:29 Jan Odvárko | skóre: 10
Rozbalit Rozbalit vše Funkce gets nefunguje
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jde o to že potřebuji najít standartní postup, jak přečíst znaky napsané na klávesnici, dokud uživatel nezakončí řádek (stiskne ENTER). Číst znak po znaku mi přijde divné, hlavně proto že terminály se mezi OS v něčem liší a jinde by (asi) mohlo dojít k chybě. Získání i zobrazení jednotlivých znaků bych rád nechal na terminálu.

K té funkci fgets - Něco jako že bych za *FILE dosadil odkaz na vstup z klávesnice? Zkusím to.
31.1.2004 15:36 Petr
Rozbalit Rozbalit vše Funkce gets nefunguje
Pokud ches cist pouze z klavesnice tak na pozici FILE* zadej "stdin". Nebo muzes pouzit scanf, nebo fscanf, kde za pointer na FILE opet zadas "stdin".
31.1.2004 15:48 Jan Odvárko | skóre: 10
Rozbalit Rozbalit vše Funkce gets nefunguje
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takže stdin, stdout a stderr jsou ukazetele na speciální zařízení :) Díky za odpovědi, jsem zase o něco chytřejší.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.