Skip to content

Programy strumieniowe

Żeby edytować pliki w powłoce potrzebny jest edytor tekstu. Najprostszy do wykorzystania jest edytor nano. Więcej informacji o nim znajduje się na stronie projektu nano. W zadaniach domowych poznacie również edytor vim.

Żeby rozpocząć edycję pliku tekstowego użyj polecenia:

nano prosty_program_strumieniowy.c
Edytor podczas pracy powinien wyglądać mniej więcej tak:
  GNU nano 6.2                        prosty_program_strumieniowy.c *                               
#include <stdio.h>

int main(int argc, char** argv) {
    int a;
    int ai = 1;
    while ( scanf("%d", &a) == 1 ) {
        printf("input %d is %d\n", ai, a);
        ai++;
    }
    return 0;
}






^G Help       ^O Write Out  ^W Where Is   ^K Cut        ^T Execute    ^C Location   M-U Undo
^X Exit       ^R Read File  ^\ Replace    ^U Paste      ^J Justify    ^/ Go To Line M-E Redo

Na dolnej belce znajdują się skróty klawiaturowe. Na przykład:

  • Ctrl + X - zamyka (i pozwala zapisać) plik,
  • Ctrl + G - pokazuje plik pomocy,
  • Alt + U - wycofuje ostatnie zmiany,
  • Alt + E - przywraca wycofane zmiany.

Poniższy program wypisuje argumenty przekazane z lini poleceń:

#include <stdio.h>

int main(int argc, char** argv) {
    for ( int ai = 1 ; ai < argc ; ai++ ) {
        printf("argument %d is %s\n", ai, argv[ai]);
    }
    return 0;
}

Poniższy program wczytuje liczby ze standardowego wejścia:

#include <stdio.h>

int main(int argc, char** argv) {
    int a;
    int ai = 1;
    while ( scanf("%d", &a) == 1 ) {
        printf("input %d is %d\n", ai, a);
        ai++;
    }
    return 0;
}

W systemie satori jest proste zadanie programistyczne Prosty program strumieniowy, które wymaga połączenia tych dwóch programów w jeden. Spróbujmy rozwiązać to zadanie w konsoli. 1. zaloguj się na serwer studencki:

ssh student.tcs.uj.edu.pl
1. utwórz katalog roboczy:
mkdir prosty_program_strumieniowy
cd prosty_program_strumieniowy
1. uruchom edytor nano.
nano prosty_program_strumieniowy.c
1. napisz program (w terminalu skrót klawiaturowy Ctrl + Shift + V służy do wklejania treści ze schowka). 1. skrót Ctrl + X kończy edycję. 1. skompiluj napisany program używając polecenia gcc: :
gcc -g -Wall -o prosty_program_strumieniowy prosty_program_strumieniowy.c
1. uruchom napisany program:
./prosty_program_strumieniowy 1 2 3 4 5
1. możesz wpisać standardowe wejście do swojego programu. Skrót Ctrl + D zamyka plik wejściowy do programu. 1. przy pomocy polecenia curl pobierz testy ze strony internetowej:
curl -L -o tests.zip https://srodowisko.tcs.uj.edu.pl/streams/tests.zip
1. przy pomocy polecenia unzip rozpakuj archiwum zawoerające testy:
unzip tests.zip
1. możesz uruchomić swój program ze standardowym wejściem przekierowanym z pliku, np.
./prosty_program_strumieniowy 1 2 3 4 5 < tests/test01.in