CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

关于文件的读如问题,很简单的,急用啊

楼主MK777()2006-06-04 11:02:13 在 C/C++ / C++ 语言 提问

我的一个课程设计题:编写程序,从键盘读入一个文本文件名字(可带路径),为该文件中的所有单词建立一个词汇索引。按字母顺序显示所有单词(仅一次),后面紧跟着它们所在的行号。大写与小写字母被认为是相同的。例如,对于下列的输入文件:  
  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

相关问题

关键词

得分解答快速导航

  • 帖主:MK777

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo