关于文件的读如问题,很简单的,急用啊
我的一个课程设计题:编写程序,从键盘读入一个文本文件名字(可带路径),为该文件中的所有单词建立一个词汇索引。按字母顺序显示所有单词(仅一次),后面紧跟着它们所在的行号。大写与小写字母被认为是相同的。例如,对于下列的输入文件:
To be or
not to be,
that is the question.
产生的词汇索引如下:
be 1 2
is 3
not 2
or 1
question 3
that 3
the 3
to 1 2
其中我的想法是将单词读入一个字符串数组中,但是我用
while(!ifile.eof()&&i<count) /*count是单词数,前面已经数出来了*/
{
ifile.get(ch1,100,' '||'\n');
word[i++]=ch1;
ifile.ignore();
来解决读入数组问题时
不能执行这步,大概是这步有问题
现在请教高手帮我这菜鸟解决一下这问题,六月六号就要交了,急啊!!!!!!!
问题点数:40、回复次数:7Top
1 楼MK777()回复于 2006-06-04 11:20:16 得分 0
高手们,真的很急啊
求求看看题目吧!Top
2 楼MagicCarmack(MagiC++)回复于 2006-06-04 13:06:08 得分 0
C++ Primer第六章可以满足你的要求,楼主看看,也许对你有帮助Top
3 楼MK777()回复于 2006-06-05 07:52:25 得分 0
我看了一下C++ Primer,还是不太懂,是不是要用到容器类啊?
我是个菜鸟,这方面不知道啊!!
老师们能提供些具体的代码让我学学吗?
真的很急啊!我都要崩溃了!Top
4 楼eqxu(天使联盟)回复于 2006-06-05 09:08:04 得分 0
getline() —— 虽然前面的章节中我曾提到过这个函数,但还有一些内容我们未曾涉及:此函数不但可用于逐行读取,而且它还可以设为遇到某个特定字符后停止读取。下面给出传递这一参数的方法:
getline(array,array_size,delim);
以下为示例代码:
#include <fstream.h>
void main()
{
// 假设test_file.txt中已经存有"Hello World"这一内容
ifstream File("test_file.txt");
static char arr[10];
/* 读取,直到满足下面的条件之一:
1)已经读取10个字符
2)遇到字母"o"
3)出现新一行
*/
File.getline(arr,10,'o');
cout << arr << endl; // 将显示"Hell"
File.close();
}
Top
5 楼MK777()回复于 2006-06-05 09:47:11 得分 0
急!!!!!!!!!Top
6 楼MK777()回复于 2006-06-05 10:40:53 得分 0
把上面的程序改为
while(ifile.eof()&&i<count) /*count是单词数,前面已经数出来了*/
{
ifile.get(ch1,100,' '||'\n');
word[i++]=ch1;
ifile.ignore();
}
就可一进入while循环了,但给数组的赋值都是空的;郁闷了
朋友们帮忙解答一下吧!!!
Top
7 楼MK777()回复于 2006-06-05 12:59:48 得分 0
急!!!
求救!!!!
真的~Top




