diff --git a/Makefile b/Makefile index 50bcfc8..ffb7941 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,20 @@ all: - gcc -DNDEBUG b2t.c -o b2t - gcc -DNDEBUG t2b.c -o t2b + mkdir -p bin + gcc -DNDEBUG b2t.c -o bin/b2t + gcc -DNDEBUG t2b.c -o bin/t2b debug: - gcc b2t.c -o b2t - gcc t2b.c -o t2b + mkdir -p bin + gcc b2t.c -o bin/b2t + gcc t2b.c -o bin/t2b b2t: - gcc -DNDEBUG b2t.c -o b2t + mkdir -p bin + gcc -DNDEBUG b2t.c -o bin/b2t t2b: - gcc -DNDEBUG t2b.c -o t2b + mkdir -p bin + gcc -DNDEBUG t2b.c -o bin/t2b clean: - rm -f b2t t2b + rm -f bin/b2t bin/t2b diff --git a/README.md b/README.md index f9eb907..fd58794 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ Popis funkce T2B Na standardním vstupu očekává řetězec ASCII znaků. Na standardní výstup vypisuje 8 binárních zanaků odpovídajících 1 ASCII znaku vstupu. +Víceřádkový text lze zadat přesměrováním souboru (Příklad: ./t2b < soubor.txt) +(proto nelze ruční zadávání ukončit klávesou Enter, ale 2xCTRL+Z na Windows (2xCTRL+D na Linuxu). + Vstup se zpracovává znak po znaku, délka vstupní zprávy je tedy dána limity standardního vstupu na daném systému. diff --git a/bin/b2t b/bin/b2t old mode 100644 new mode 100755 diff --git a/bin/t2b b/bin/t2b old mode 100644 new mode 100755 index 2a3edcf..1c1eb8a Binary files a/bin/t2b and b/bin/t2b differ diff --git a/t2b.c b/t2b.c index 592707b..b01d728 100644 --- a/t2b.c +++ b/t2b.c @@ -17,16 +17,26 @@ int main() { // hláška k zadání vstupu - printf("Zadejte textovy vstup: "); + printf("Zadejte textovy vstup (rucni ukonceni pomoci 2xCTRL+Z na Windows (2xCTRL+D na Linuxu)): "); // čtení prvního znaku vstupu in = fgetc(stdin); + + // odřádkování po zadání dat, protože už nemáme Enter + fputc('\n', stdout); // hláška o výstupu printf("Zakodovany binarni vystup: "); // cyklus zpracování vstupu - while(in != EOF && in != '\n') { + // zrušena možnost Enter na konci, nešly načítat víceřádkové soubory + // technický popis chování: + //Using Control-D, you cause the terminal driver to make all the input typed so far on the line available + //for reading, even if you've not typed return. If you type, say, abc and then Control-D, + //the terminal driver makes the three characters abc available (and Control-D is not seen by the program). + //If you type Control-D again, or type return and then Control-D, then there are no more characters available, + //so the underlying read() system call returns 0, which the standard I/O system interprets as EOF. + while(in != EOF /*&& in != '\n'*/) { // ladicí výpis aktuálního znaku debug("%c\n", in);