首先我要说的是,你的代码有很多语法错误,你应该再看看相关输入输出流方面的资料,要想理解它也许你不止看二三遍,慢慢来吧.
下面回到你的问题..........................
你的问题有二个,
一是打开输入的文件名对应的文件;
二是分析这个文件里有多少个单词
第一个问题很好解决, 如下:
ifstream in;
string inFileName;
cout<<"输入文件名:";
cin>>inFileName;
// c_str() 是把string字符串转化成 C 风格的字符串
// 为什么要转化,因为 open()函数只接受 C 风格字符串
in.open(inFileName.c_str());
if(!in)
//如果打开失败, 只要这样检查一个流对象就行了
{
cerr<<"cerr open infile!"<<endl;
exit(1);
}
输入的文件名可是一个路径,如果是文件和执行文件在同一目录,只要输入文件名就可以了.
至于第二个问题就不那么容易了, 因为单词是多个单字符组成的,但是你只能检查单个字符,程序是不可能知道那样才算一个单词,这个必需由程序员自己来设计.这里有个办法:我们可以假想一个单词就是几个字符的连续形式,只要这个连续性就打断我们就可以认为已经读完一个单词了.(打断的字符可是空格,可能是回车,反正不是字母的字符就是我们认为的打断字符)
好了如果你已经明白的话,就可以根据这个算法自己写一个识别单词的函数.至于计数就不用说了,如果能识别单词,计数功能只是稍加几句代码而已.