Например така
GeSHi (C):
#include <stdio.h>
#define IN 1 /* Vatre v dumata sme */
#define OUT 0 /* Izvan dumata sme */
int main( int argc, const char* argv[] )
{
int c, n1, nw, nc, state;
state = OUT;
n1 = nw = nc = 0;
while ((c == getchar()) != EOF) {
++nc;
if (c == '\n')
++n1;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
printf ("%d %d %d\n", n1
, nw
, nc
);
}
Открий купчинката разлики и се замисли над тях. И следващият път, когато задаваш подобен въпрос, обяснявай на C или на C++ се опитваш да пишеш (има някои разлики, без да броим обектите в C++), обяснявай каква е грешката, която ти дава, обяснявай с какъв компилатор и с какви опции компилираш, хубаво би било да обясниш и действието, което очакваш да изпълнява програмата... все неща, които спомагат отговарящите да могат да ти отговорят по-бързо, по-лесно и по-точно

edit: Какво искаш да кажеш в условието на while?