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

谁可以帮我看下是哪错了? 是返回值错了吗?

tantan821 发布于 2010-08-13 11:22, 578 次点击
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

 
 
int filetovector(string filename,vector<string>& svec)
{
    ifstream infile(filename.c_str());
    if (!infile)
        return 1;


    string s;
    while (infile>>s)
    {
        svec.push_back(s);
    }
    infile.close();
    if (infile.eof())
    {
        return 4;
    }
    if (infile.bad())
    {
        return 2;
    }
    if (infile.fail())
    {
        return 3;
    }
}
 
int main()
{
    vector<string> svec;
    string filename,s;
   
    cout<<"Enter filename: "<<endl;
    cin>>filename;
    switch (filetovector(filename,svec))
    {
    case 1:
        cout<<"error: can not open file: "<<filename<<endl;
        return -1;
    case 2:
        cout<<"error: system laliure "<<endl;
        return -1;
    case 3:
        cout<<"error: read laliure "<<endl;
        return -1;
    }
    cout<<"vector:"<<endl;
    for (vector<string>::iterator iter=svec.begin();iter!=svec.end;--iter)
    {
        cout<<*iter<<endl;
    }
    return 0;
}
3 回复
#2
jjg2010-08-13 12:04
for (vector<string>::iterator iter=svec.begin();iter!=svec.end;--iter)
少了括号,end()
#3
jjg2010-08-13 12:09
for (vector<string>::iterator iter=svec.begin();iter!=svec.end;--iter)
少了括号,end() ,还有就是,是iter++,
#4
pangding2010-08-13 13:49
小错误要注意!
1