/* 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;
}