Anonymní profil Manas – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Manas – Programujte.comAnonymní profil Manas – Programujte.com

 

Příspěvky odeslané z IP adresy 147.229.213.–

Manas
C / C++ › from Pascal to C
13. 10. 2010   #134559

Předpokládejme, že tam ten soubor nechci dávat napevno, ale pomocí argumentu z příkazové řádky ,,projekt < test.txt. Tím odpadá nutnost otevírat a zase zavírat soubor (terminál to udělá za nás). V kódu je popsán jednoduchý dekomprimační algoritms na text. Př. vstupu: 2b4c6o program vypíše bbccccoooooo. Konkrétně nerozumím tomuto

read(fi,b); 

if (b and $c0) = $c0 then
begin
j:= b and $3f;
read (fi,b);
for i:= 1 to j do
write(fo,char(b));
end

Jak můžu zadat dvakrát čtení ,,read(),,?!

Co znamenají značky $c0 a $3f bych neřešil.

Manas
C / C++ › from Pascal to C
13. 10. 2010   #134555

Nejprve mne napadlo toto:

while ((c = getchar()) != EOF) {

if (isdigit(c) != 0)
c = pom1;
getchar(d);
for (pom2 = 1; pom2 < pom1 - 48; pom2 ++)
putchar(d);
}

ale getchar() ma v tomto pripade dva argumenty, takze to nikdz fungovat nebude. Nejaka rada?

Manas
C / C++ › from Pascal to C
13. 10. 2010   #134554

Umel by nekdo prepsat tento kod do C?



Program DekompreseRLE;
Uses CRT;

var fi : file of byte;
fo : text;
i,j,b : byte;

Begin
Clrscr;
assign(fi,'text.kmp');
reset(fi);
assign(fo,'text.dat');
rewrite(fo);
while not eof(fi) do
Begin
read(fi,b);
if (b and $c0) = $c0 then
begin
j:= b and $3f;
read (fi,b);
for i:= 1 to j do
write(fo,char(b));
end
else
write(fo,char(b));
end;
Close(fi);
Close(fo);
End.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý