/* wc.c

   Bu program bir dosyanın kaç satır, kelime ve karakterden oluştuğunu
   bulup ekrana yazar.

   --------------------------------------
   Kullanımı  : wc <dosya_adı>
  
   örnek: wc test.php
	    20 355 1546 test.php
   --------------------------------------

   Mart 2008 
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define CR    '\n'
#define TAB   '\t'
#define SPACE ' '
#define ZERO  0u

int main( int args, char *argvek[] )
{
    FILE *dosya;
    int   bayrak = 0;
    unsigned long kar, kelime, satir;
    unsigned char kr;

    kar    = ZERO;
    kelime = ZERO;
    satir  = ZERO;

    if( argvek[0] )
    {

       if( (dosya = fopen(argvek[1], "r")) == NULL ){
	  printf("Kullanimi: wc <dosya_adi>\n");
	  exit(1);
       }

       /* dosyanın sonuna kadar */
       while( !feof(dosya) )
       {
	   fscanf(dosya, "%c", &kr);

	   kar++;                   /* karakter sayısı */

	   if( kr == CR ) satir++;  /* sayfa sonu karakteri */

	   if( kr == SPACE ||       /* boşluk karakteri */
               kr == CR    ||       /* sayfa sonu karakteri */
               kr == TAB )          /* tab karakteri */
	       bayrak = 0;

	   else if(bayrak == 0){
	      bayrak = 1;
	      kelime++;
	   }
       }

    }

    fclose(dosya);

    printf(" %lu %lu %lu %s\n",satir-1, kelime, kar-1, argvek[1]);

  return 0;
}