注册 登录
编程论坛 C++教室

新手简单的文件的输入输出问题。50分!!!!求大家帮忙看看

gmac 发布于 2011-03-16 13:24, 935 次点击
程序代码:
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <map>
using namespace std;
int main()
{
    string word;
    vector<string> data;
    ifstream infile;
    infile.open("05.txt");
    if(!infile)
    {
        cerr << "can't open the file"<<endl;
    }
  
   int count = 1;
   while(infile >> word)
   {
     
      if(count%13) //改为14后图以贴出
      {
         data.push_back(word);
         count=count+1;
      }
      else{
      cout<<data[12]<<endl;//想输出最后一项却老是报错出界。
      data.clear();
      infile.clear();
      count=1;
      }
   }
    system("pause");

 }
希望大家帮我看看。
文件的格式
05.txt
TC ALGOPARK     918034.6970  -4346132.2810   4561971.1810  AZEL    .00000  7282
TV ALGOPARK  -.0157   -.0036   0.0039 最后这个数。。。。
TC AUS_NEW    -3530219.3810   4118797.5280   3344015.8070  AZEL    .00000  7348
TV AUS_NEW   -.0262   -.0046   -.0138
TC FORTLEZA    4985370.0380  -3955020.3390   -428472.2450  AZEL    .00000  7297
TV FORTLEZA  -.0016   -.0045   0.0131
TC GILCREEK   -2281547.4360  -1453645.2050   5756993.1460  X-Y1   7.31520  7225
TV GILCREEK  -.0168   0.0030   -.0119
TC HARTRAO     5085442.7790   2668263.5440  -2768696.9630  EQUA   6.69530  7232
TV HARTRAO   -.0002   0.0193   0.0173
先谢谢大家了!


另外:关于用C++进行文件输出如何进行格式控制,感觉没有C的那种%简单。。用C++如何控制呢?
帮忙写个代码,输出到06.txt,格式和05.txt一样。。

只有本站会员才能查看附件,请 登录


分不多重要的是以助人为乐。对吧!?

按楼下的改后
只有第一个数值输出的是正确的,图已贴出
 

[ 本帖最后由 gmac 于 2011-3-16 17:35 编辑 ]
17 回复
#2
gmac2011-03-16 13:25
大家来帮忙。。。。
#3
gmac2011-03-16 13:27
新手
#4
gmac2011-03-16 13:33
有时间的童鞋帮忙看看。。弄了很长时间了。
#5
lintaoyn2011-03-16 17:00
if(!(count%13==0)) 改成 if(count%14) //从1开始对14模才有13次为true
还有if(!(count%13==0))这写法让你看的头晕。
#6
gmac2011-03-16 17:21
回复 5楼 lintaoyn
谢谢你的回答。可是按你的说法改了后,出现的结果只有第一个是正确的啊,后面就完全乱了
#7
pangding2011-03-16 17:36
你那个 05.txt 里的东西没看懂呀?
你想输出什么样子?一项一行?count 干什么用的也没太看明白。
#8
lintaoyn2011-03-16 17:36
把容器清空后紧接着把word再压入容器,要不每打印一次就少了一个字符串。手机回复不方便
#9
gmac2011-03-16 18:23
回复 7楼 pangding
就是一组数据。我是想以两行为一组存入容器。可是第二行的最后一个数据老是出现问题。
#10
gmac2011-03-16 18:24
回复 8楼 lintaoyn
不清楚。。。
#11
玩出来的代码2011-03-16 20:36
最后这个数。。。 LZ的这句话害我疑惑了一下、
话说LZ每一组数的最后一个数据都没有放到vector中。你要怎么输出、
#12
lintaoyn2011-03-17 07:12
      
data.clear();
data.push_back(word);
infile.clear();
count=2;
#13
gmac2011-03-17 09:47
回复 11楼 玩出来的代码
能解释下为什么没有存入VECTOR?
#14
gmac2011-03-17 09:51
回复 12楼 lintaoyn
能帮我解释下这样做的理由?
#15
gmac2011-03-17 10:06
回复 12楼 lintaoyn
哦。。。。突然恍然大悟。。谢谢
#16
gmac2011-03-17 11:05
回复 12楼 lintaoyn
按你的改后出现个新问题。。最后一行的数据无法压人VECTOR。。。求解
#17
lintaoyn2011-03-17 12:37
程序代码:
if(count%13) //改为14后图以贴出
      {
         data.push_back(word);
         count=count+1;
      }
      else{
          data.push_back(word);
          cout<<data[12]<<endl;//想输出最后一项却老是报错出界。
          data.clear();
     
          infile.clear();
          count=1;
      }
#18
sunrui101102011-03-18 21:34
1