Nie liczy słów tylko dałem Ci przykład jak wczytać plik do zmiennej string. Pokazało Ci się "takie coś", ponieważ zapewne chcesz wyświetlić bezpośrednio plik, a powinieneś wyświetlić zmienną string - popraw to bo zrobiłeś błąd.
EDIT:
Ok połączyłem swój przykład z Tymona przykładem i masz liczenie słów z pliku.
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
int main()
{
string str;
char bufor[256];
int pos, count;
ifstream plik;
plik.open("plik.txt");
plik.getline(bufor,sizeof(bufor));
plik.close();
str = bufor;
pos = 0;
str += " ";
while(pos<str.size())
{
count += 1;
pos = str.find(" ",pos+1);
}
cout << str << "\n slow = " << count-1 << endl;
getch();
return 0;
}