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

c++初学者求助!!!非求作业!!!

heiphy 发布于 2010-11-22 22:42, 457 次点击
作用是反转列表。。。
#include <iostream>
#include <list>
#include <algorithm>
#include <string.h>
#include <fstream>
using namespace std;
int main()
{
   ifstream input("input.txt");
   ofstream output("output.txt");
   if(!input)
    {
      cout<<"input.txt open error"<<endl;
      exit(0);
    }
    if(!output)
    {
    cout<<"output.txt open error"<<endl;
    exit(0);
    }
    list<int> p;
    list<int>::iterator q;
    char one_line[1000];
    char *number;
    while(!input.eof())
    {
     input.getline(one_line,1000);
     number=strtok(one_line,",");
     while(number!=NULL)
     {
        p.push_back(atoi(number));
        number=strtok(NULL,",");
     }
     reverse(p.begin(),p.end());
     for(q=p.begin();q!=p.end();q++)
     {
         if(q!=p.begin())
            output<<",";
         output<<*q;
     }
     output<<endl;
    }
    input.close();
    output.close();
    return 0;
}

input.txt内容如下:
2,3,4,2,4,5,2,4,7
56,34,22,45,222
23,22,323,322
output.txt内容如下:
7,4,2,5,4,2,4,3,2
222,45,22,34,56,2,3,4,2,4,5,2,4,7
322,323,22,23,7,4,2,5,4,2,4,3,2,56,34,22,45,222


求高手教我!!!
4 回复
#2
laoyang1032010-11-22 22:55
ifstream in;
in.open("input.txt",ios::in);
while(in>>a[i])
{
    i++;
}
ofstream out;
in.open("onput.txt",ios::out);
while(out<<a[i])
   i++;
#3
heiphy2010-11-23 20:27
。。。
#4
玩出来的代码2010-11-23 21:47
LZ你应该能说出怎么错了吧,知道怎么错了也应该知道怎么改了、、就给你一个式子p.clear();在哪用你该观察观察。
#5
heiphy2010-11-23 22:43
回复 4楼 玩出来的代码
,4楼给力。。。。感谢的必须。
for(q=p.begin();q!=p.end();q++)
     {
         if(q!=p.begin())
            output<<",";
         output<<*q;
     }
     output<<endl;
     p.clear();
我原先写成 clear();了。还是概念不太熟悉啊。
1