Jestem w trakcie pisania takiego programu:
*Zadanie polega na stworzeniu narzędzia do przetwarzania plików o pewnej specjalnej strukturze.
Są to pliki tekstowe. Każda linijka tekstu zawiera pewną, z góry nieokreśloną, listę liczb
zmiennoprzecinkowych zapisanych w dowolnym dopuszczalnym w C formacie i rozdzielonych znakami białymi.
Jedyne co możesz założyć, to ograniczenie na liczbę znaków w linii.
Funkcjonalność programu: użytkownik podaje nazwę pliku z rozszerzeniem txt o powyższej postaci (nie musisz sprawdzać poprawności struktury pliku). Program tworzy nowy plik o takiej samej nazwie, lecz z rozszerzeniem dat. Nowy plik ma tyle samo linijek co stary plik i każda linijka zawiera jedną liczbę równą średniej arytmetycznej liczb stojących w odpowiedniej linii starego pliku.
Uwaga: jeśli linia w starym pliku jest pusta (zawiera jedynie znaki białe, to odpowiednia linia w nowym
pliku zawiera liczbę 0.0. *
*Przykład: jeśli plik zawiera 3 następujące linijki
1.0 2.0e2
-1.0 2.0 3
to nowy plik powinien zawierać linijki
100.5
0.0
1.33333333333*
Ale nie w tym na razie rzecz, mam pytanie, czy może Ktoś wie dlaczego w tej funkcji druga pętla while ani razu nie chce się wykonać?
void find_a_line(FILE *fp)
{
char line[MAXLINE], space[] = " \n", * clipboard;
double number, sum, mean;
int counter, counter_2, p;
counter_2 = 0;
p=count_line(fp);
while(counter_2<p)
{
sum = mean = counter = 0;
fgets(line, MAXLINE, fp);
clipboard = strtok( line, space );
while( clipboard != NULL)
{
number=atof(clipboard);
sum = sum + number;
counter++;
clipboard = strtok( NULL, space );
}
mean = sum/ counter;
printf("%f ",mean);
counter_2++;
}
}