Not logged in. · Lost password · Register
Forum: Fedora Programowanie i kompilacja RSS
Potoki

Announcement

2006-06-03, 09:40 by gajownik
Subject: Zanim coś napiszesz...
Witamy w naszych niskich progach ;-)

Zanim coś napiszesz na forum:
1. zapoznaj się z Wiki i FAQ a także Poradnikiem - są tam odpowiedzi na najczęściej pojawiające się pytania
2. skorzystaj z forumowej wyszukiwarki i/lub Google - jest spora szansa, że ktoś już rozwiązał Twój problem
3. uaktualnij cały system
4. przeczytaj regulamin oraz tekst na temat mądrego zadawania pytań
5. jeśli masz jakiś problem, przekaż nam o nim odpowiednią ilość informacji - jak na razie nie potrafimy jeszcze wróżyć z fusów
6. dla każdego nowego problemu twórz osobny wątek używając jednak zdrowego rozsądku
7. nie pisz niczego, czego wstydził(a)byś się przed swoją mamą ;-)

Życzymy miłej zabawy - zespół fedorapl.org
Create new thread · Reply
Reply · Quote parsival #1 ()
since Oct 2007 · 38 posts
Group memberships: Użytkownicy
Show profile · Link to this post
Subject: Potoki
Mam do napisania program, który będzie działał‚ tak jak polecenie unixowe wc w oparciu o potoki (operator |), tylko nie bardzo rozumiem o co tu chodzi .

wiem, że wc - wypisuje liczbę bajtółw, słółw i linii w plikach (po wybraniu opcj lub wszystkie na raz)
dla liczenia bajtów napisałem coś takiego :


/*program liczy znaki w pliku 'plik' Ilosc znakow to rownoczesnie
  wielkosc pliku w bajtach*/

#include <stdlib.h> //wykorzystanie dla funkcji exit()
#include <fcntl.h>

#define BUFROZ 1
main()
{
    int desp;                //deskryptor pliku
    char buf[BUFROZ];
    char buf2[BUFROZ];
    int czytaj;
    int licz_zn;
    char t;   
    /*
    */
    if((desp = open("plik", O_RDONLY)) == -1) //w wypadku błędu funkcja
                                                                               //open zwraca -1
    {
        printf("Nie moge otworzyc pliku 'plik' ");
        exit(1);
    }
   
        while((czytaj = read(desp, buf, BUFROZ)) >0)
        licz_zn+=czytaj;   
  
        printf("Ilosc znakow w pliku wynosi : %d", licz_zn);
     
    close(desp);
    exit(0);      
}

Problem pojawia się przy liczeniu słów, chciałbym porównywać element z bufora  jakiś np. b w instrukcji np. if( b [ i ] ==' ' && b[i+1] != ' '){ ilosc_wyrazow= ilosc_wyrazow +1}
tylko nie wiem jak z bufora wyciągnąć to b. Możnaby  zrobić to przy użyciu ifstream  ale to już chyba nie będzie w oparciu o potoki ?

A tego polecenia to już zupełnie nie rozumiem : Przepisac ostatni program tak, aby dzialal w trybie interaktywnym. Przykladowo wprowadzamy lancuch oraniczony konfigurowalnymi z linii komend tagami, (nie przerywamy po wcisnieciu enter, konieczne napotkanie taga) a wc robi swoje... i od nowa.
Czy mógłby to ktoś przełożyć na Polski :)
Avatar
Reply · Quote ecik #2 ()
User title: Paczker
since Sep 2006 · 49 posts · Location: Rybnik
Group memberships: Użytkownicy
Show profile · Link to this post
Zawsze możesz zobaczyć jak napisany jest oryginał:
http://www.google.com/codesear…?hl=pl&q=show:chhRpCCl…
Paczker i fan Fedory
... moje zapiski...
... i strona na wiki
Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Reply
Go to forum
Powered by Unclassified NewsBoard (© 2003-7 by Yves Goergen)
Current time: 2008-08-21, 18:36:45 (UTC +01:00)
Copyright © 2006 - 2007 fedorapl.org