Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj chcem sa spytat ako pracovat s binarnym suborom, ako ho prepisovat
(V CODE::BLOCKS - WIN) napr.
void main() {
FILE* file = NULL;
if ((file = fopen("data.txt", "rb"))) {
char value;
while((value = getc(file)) != "0D") {
putchar(value);
}
fclose(file);
}}
v subore data mam dva kratke riadky , je vytvoreny vo Windows 7 , v HexEdite ukazuje ze tam je znak konca riadku 0D 0A .
A islo o to aby mi to binarne nacital a dostal sa po 0D a tym padom skonci vypisovat.
2 problemy:
1.preco neskonci na 0D , co mam v tom zapise zle? nemozem to zapisovat ako string ?
2.vypisuje to tie dva riadky(textovo) a potom donekonecna medzery
-preco nevypisuje binarne?
Dakujem za odpovede
EDIT aha , tak to je v 16tkovej to somsi neuvedomi , ale aj tak ako by som to moihol zapisat ked hladam koniec riadku?v binarke
Offline
getc vrací integer, takže to zkus porovnat s hodnotou "0D", což je číslo "13"...
while((value = getc(file)) != 13)
EDIT:
pro výstup do terminálu zkus využít funkce printf (knihovna <stdio.h>
printf("%X", value);
Ta ti vypíše hodnoty v hex tvaru. Kdybys chtěl jiný tvar výstupu, doporučuji si přečíst něco o funkci printf a možnostech formátování jejího výstupu (%x není to samé co %X ... atd.)
Offline