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