Miért nem működik az fgets függvényem?
Figyelt kérdés
Az órán megadott példát használom:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char s[100];
fgets(stdin, 100, s);
printf("%s", s);
return 0;
}
De az exe indítás után befagy
2014. nov. 21. 19:38
1/8 anonim válasza:
Felcserelted az stdin es s parametereket.
2/8 A kérdező kommentje:
Köszi. Az órai jegyzetben máshogy volt de így már működik :)
2014. nov. 21. 19:53
3/8 anonim válasza:
Elkövetsz még egy hibát. A C-ben a string végét \0 karakter jelzi. Vagyis, ha te 100 karaktert olvasol be, akkor valójában az fgets 101 karaktert fog a tömbödbe írni, holott a tömböd csak 100 elemű.
4/8 A kérdező kommentje:
Igen ez problémát is jelent mivel összehasonlítok a későbbiekben két sztringet aminek egyenlőnek kellene lennie de nem azok... kijavítottam de így se jó
2014. nov. 21. 23:15
5/8 anonim válasza:
#3, teves valasz, fgets masodik parametere a puffer meretet keri beleertve a lezaro null-t: [link]
6/8 anonim válasza:
Kerdezo: remelem nem ==-vel probalod az osszehasonlitast, lasd strcmp!
7/8 A kérdező kommentje:
strcmp el próbálom de az fgetsel bekért szöveg mindig 1-el több karaktert tartalmaz az strlen szerint... Amivel összehasonlítom nem fgetsel kértem be hanem fajlbol.
2014. nov. 21. 23:59
8/8 anonim válasza:
Fájlból olvasva van mérete a tartalomnak. fgets-et pedig lesz a végén egy null terminátor.
A strcmp helyes eredményt ad. Vagy add hozzá az egyikhez, vagy szedd ki a másikból.
Tipp: inkább add hozzá a fájlból kiolvasotthoz, hátha ki kell írnod.
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!