CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

如何逐个读取文件中一行中单个单个的数字直到行末,同时一行一行的读取??

楼主tbwisess(精武门)2004-05-02 19:26:18 在 C/C++ / C++ 语言 提问

比如文件a.txt中:  
    2   1   3   54   45  
  45   65   66   32   12   45  
  可不可以通过cin然后判断是否到行末来读取一行数字???  
  怎么判断行末????(不用getline读,因数字间可能有几个空格tab,这样取数字比较麻烦) 问题点数:20、回复次数:6Top

1 楼thb28(没有激情的日子)回复于 2004-05-02 19:32:22 得分 5

ifstream   iFile;  
  ofstream   oFile;  
   
  void   getch()  
  {  
  if(!iFile.eof())//判断文本是否结束  
  {  
  iFile.get(ch);  
  if(ch=='\n'')  
  {row++;//判断是否换行  
  }  
  }  
  }  
  大致思路是这样的  
  Top

2 楼cngdzhang()回复于 2004-05-02 20:18:34 得分 5

FILE   *f;  
   
  f=fopen(filename,"r");  
   
  int   num;  
   
  fscanf(f,"%d",&num);//这里能自动转换的  
  while(!feof(f))  
  {  
      //do   something  
      fscanf(f,"%d",&num);  
  }  
  Top

3 楼soyer2001(疯人院の炽阳)回复于 2004-05-02 20:32:25 得分 5

thb28(c++学习中)     大大     :  
  你说得  
  if(!iFile.eof())//判断文本是否结束  
   
  我知道在VB中可以       。        
  在C里面真的也可以么?  
  我手头没有C的编译器,能麻烦你把它全部写出来,编译通过了给我看看好么  
   
  当然   有空我自己也会去试的!谢谢楼主提这个问题!Top

4 楼qyii(劳心劳力)回复于 2004-05-02 20:40:53 得分 0

markTop

5 楼jiangpeng(Mr. J)回复于 2004-05-02 22:00:00 得分 5

//   c++  
  #include   <fstream>  
   
  using   namespace   std;  
   
  int   main(int   argc,   char*   argv[])  
  {  
          if   (argc   !=   2)   return   -1;  
          ifstream   f(argv[1]);  
          while   (!f.eof())   {  
                  int   num;  
                  f   >>   num;  
                  cout   <<   num   <<   '\n';  
          }  
          f.close();  
  }  
   
  //   c  
  #include   <stdio.h>  
   
  int   main(int   argc,   char   *argv[])  
  {  
          FILE   *f;  
          if   (argc   !=   2)   return   -1;  
          f   =   fopen(argv[1],   "r");  
          while   (!feof(f))   {  
                  int   num;  
                  fscanf(f,   "%d",   &num);  
                  printf("%d\n",   num);  
          }  
          fclose(f);  
  }  
  Top

6 楼dananhai(大男孩)回复于 2004-05-02 22:12:07 得分 0

这是别处我的贴,你看看参考一下  
  =============================================================  
  要读的内容:  
  CALLING_NBR     CALLED_NBR     START_TIME     DURATION  
   
  8655148 03592296879 2004/02/03   0:01:03 34  
   
  8689052 03592868899 2004/02/03   0:02:05 12  
   
  8878085 03597529283 2004/02/03   0:03:23 1  
   
  8661641 03594033744 2004/02/03   0:01:53 91  
  ==========================================================================  
  #include   <stdio.h>  
  main(void)  
  {  
        int   i=0;  
        char   ch;  
        char   linebuffer[81];  
        FILE   *fp;  
        if((fp=fopen("d:\\t1.txt","rb"))==NULL)  
          {printf("fill   not   open   !");  
            exit(0);  
          }  
        ch=fgetc(fp);  
        while(!feof(fp)){  
                if(ch!='\n'){  
                          linebuffer[i++]=ch;  
          if(i>100)  
                                  {printf("error   occur!");  
                                    exit(0);  
                                  }  
                }  
                else{  
                          linebuffer[i]='\0';  
                          puts(linebuffer);  
                          i=0;  
                }  
              ch=fgetc(fp);  
              }  
        fclose(fp);  
  }    
      看看是不是这个,是的话给我加分啊!  
      我没给他写成独立的函数,你自己弄吧意思是这样了。我想一定有好多别的方法,我的可能是最笨的,不过你给的数据到能通过,有毛病请指出。呵呵~~~  
  Top

相关问题

  • 如何每次读取文件一行
  • VC++中如何对文本文件一行一行的读取
  • 如何一行一行地读取文本文件呢?
  • 读取文本文件时,为什么最后一行会读取两次?
  • 如何指定读取文本文件的某一行
  • 我想读取文本文件某一行该怎么写?
  • 怎么读取文本文件的一行?
  • 如何读取txt文件中的任意一行数据?
  • 为什么读取一行文件那么复杂!!
  • 如何用CFile读取文本文件的一行

关键词

  • 数字
  • 一行
  • linebuffer
  • ifile
  • 判断
  • feof
  • fp
  • fscanf
  • ch
  • num

得分解答快速导航

  • 帖主:tbwisess
  • thb28
  • cngdzhang
  • soyer2001
  • jiangpeng

相关链接

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

广告也精彩

反馈

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