zliczanie znaków PILNIE!

0

Witam
Mam do napisania w Borlandzie 3.11 program, który będzie zliczał wszystkie znaki z pliku tekstowego.
np. w pliku są 354 znaki

I takie cos musze mieć bo inaczej po mnie ;-(

A gdybym mial do tego jeszcze wyszczegulnione że :
literek A jest 50
B jest 5
C jest 9
To byloby już suupppeerrrr!!!

Z góry dzięki wszystkim za wpisy
Pozdrawiam
Tomek

0

Zaliczenia przyszedł czas...

F1
fopen
fseek
fclose

0
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *plik;
if(argc<1) exit(1);
if ((plik = fopen(argv[1], "r")) == NULL)
   {
   fprintf(stdout,"Nie moge otworzyc pliku "%s".\n",argv[1]);
   exit(1);
   }
int licznik = 0;
char chr;
char znaki[256];
for(int i=0; i<256; i++)
   znaki[i]=0;
while((chr = getc(plik)) != EOF)
   {
   //putc(ch,stdout);
   znaki[chr]++;
   licznik++;
   }
fclose(plik);

fprintf(stdout,"Wszystkich znakow bylo: %ld\n",licznik); 
for(int i=30; i<256; i++) //pominąłem pierwsze 30 znaków, bo i tak ci się nie przydadzą, można też pominąć okołło 127 ostatnich, ale niech już będą...
   fprintf(stdout,"Znakow "%c" bylo %ld\n",(char)i,znaki[i]); 
getc(stdin);
return 0;
}

(Pisałem to na Dev-C++ jakiś czas temu)

PS> Ach, ta świadomość, że uratowałem życie kolejnemu człowiekowi:)
PPS>

Zaleczenia

  • to specjalnie? :P
    //Nie :-P - m.M

<font color="blue">[</span><font color="red">ADD</span><font color="blue">]</span>
Co myślicie nad ogłoszeniem:
Pomogę w napisaniu 'programu na zaliczenie' w C++, odpłatność w formie doładowania karty POP.
Można by se nieźle dorobić :) ;p

<font color="blue">[</span><font color="green">ADD</span><font color="blue">]</span>
Aaaaa... bo to czyściutkie C miało być...:)

0

http://4programmers.net/Forum/viewpost.php?id=108691&h=

Co do sumarycznej ilości znaków w pliku... Rozmiar pliku dokładnie odpowiada ilości wszelkich znaków w pliku.

// Też się pochwalę :D

// Wolę kasę, programy wysyłam mailem za pobraniem ;p

0

Wielkie dzieki wszystkim za wpisy, jednak nadal mam problem !
Mój Borland 3.1 po skompilowaniu programu od krecika podaje 2 błędy.
Mój problem polega na tym ,że mam juz kilka programów i żaden mi nie chodzi na tej wersji ,podejżewam że są robione na nowszych a ja niestety musze mieć to w 3.1 gdyż mam taki w szkole.

Pozdrawiam
Tomek

0

Dżizas,

#include <stdlib.h> // exit()

A na 'multiple declaration of i' możesz zaradzic prosto. Wywal deklarację z for'ów i przenieś ją gdzies wyżej. Podstawy... Podstawy !!!

// Też mam BC3.1, mam też TC1.01 i bardzo sobie chwale oba

0

Dzięki stdlib.h pomogło :))
jeżeli chodzi o fora to musze pokombinować , gdyż nie bardzo wiem gdzie go przenieść . Jeżeli możesz to wklej mi cały programik.
WIELKIE WYRAZY WDZIĘCZNOŚCI !!!!
TOMEK :))

0
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){

  FILE *plik;

  if(argc<1) exit(1);
  if ((plik = fopen(argv[1], "r")) == NULL){
    fprintf(stdout,"Nie moge otworzyc pliku "%s".\n",argv[1]);
    exit(1);
  }

  int licznik = 0;
  char chr;
  char znaki[256];
  int i;                      // TAK WYGLĄDA DEKLARACJA !!!

  for(i=0; i<256; i++)  // TO JEST PĘTLA FOR
    znaki[i]=0;
  while((chr = getc(plik)) != EOF){
    znaki[chr]++;
    licznik++;
  }
  fclose(plik);

  fprintf(stdout,"Wszystkich znakow bylo: %ld\n",licznik); 
  for(i=30; i<256; i++)  // A TU JEST DRUGI FOR grrrrr
     fprintf(stdout,"Znakow "%c" bylo %ld\n",(char)i,znaki[i]); 
  getc(stdin);
  return 0;
}

[do postu ponizej]
!#@@!@@@$!@[siekiera]#%@# Wsadź ten plik gdzie sobie wolewujesz, ale jesli chodzi o rozszerzenie to dla borlanda najlepiej wybrać 'cpp'. Btw. okłamałem Murkyego, nie dostanie mojego głosu na lolka roku, będzie sie musiał pogodzić. ;p EOT [=End Of Topic]

1 użytkowników online, w tym zalogowanych: 0, gości: 1