Nowe posty

Autor Wątek: Mały program w c  (Przeczytany 2241 razy)

twardziel

  • Gość
Mały program w c
« dnia: 2011-12-18, 20:13:29 »
Mam do na pisania program znajdujący najdłuższą linię i wyświetlający ilość jej znaków.
Nie chciałbym robić tego przy pomocy wc tylko lseek().
Mógłby ktoś poradzić jak to zrobić lub przekierować do odpowiedniego źródła? bo ja nic nie mogłem znaleźć.

chmooreck

  • Gość
Mały program w c
« Odpowiedź #1 dnia: 2011-12-18, 22:59:10 »
Cytat: twardziel
Mógłby ktoś poradzić jak to zrobić lub przekierować do odpowiedniego źródła? bo ja nic nie mogłem znaleźć.
man lseek

W czym to chcesz pisać ?
Założyłeś wątek w skryptach, a chcesz użyć funkcji C ?

twardziel

  • Gość
Mały program w c
« Odpowiedź #2 dnia: 2011-12-19, 18:43:37 »
Wydawało mi się że dodaje w C więc proszę o przeniesienie.

twardziel

  • Gość
Mały program w c
« Odpowiedź #3 dnia: 2011-12-19, 19:20:56 »
Narazie mam coś takiego?
i niby działa

 

#include
#include
#include

int main (int argc, char* argv[])
{
int a,c,i,rozm,w,k,t;

a = open(argv[1], O_RDONLY);
t = lseek(a, 0, SEEK_END);
lseek(a, 0, SEEK_SET);
char buf[t];
read(a, buf, 99);
for(i = 0; i < t; i++)
{
if(buf[i] == '\\n')
{
c ++;

if (c == 1)
{
//rozm = lseek(a, i, SEEK_SET);
rozm = i;
w = i;
} //printf("b nr 1: %d\\n", b);
if (c > 1)
{
k = i-w;

if(rozm < k)
{
rozm = k;
}

w = i;


}
}
}

printf("bufor: %s, rozm najdl lini:%d\\n ",buf, rozm);
close(a);
return 0;
}
Ma ktoś inne pomysły?