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

运行结果老是打不开文件

ljt 发布于 2010-04-07 12:48, 636 次点击
函数打开文件用于输入,将文件内容读入string类型的vector容器中,每一行存储为该容器对象的一个元素
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int fileToVector(string fileName,vector<string>& svec)
{
    ifstream inFile(fileName.c_str());   //创建ifstream对象inFile并绑定到由形参fileName指定的文件
    if(!inFile)
        return 1;

    string s;
    while(getline(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<<"system failure"<<endl;
        return-1;
    case 3:cout<<"read failure"<<endl;
        return -1;
    }
    cout<<"vector:"
        <<endl;
    for(vector<string>::iterator iter=svec.begin();iter!=svec.end();++iter)
        cout<<*iter<<endl;
    return 0;
}
我在桌面建了一个文件,可是我把文件输进去了(有扩展名没扩展名都输过了,有的还输了路径),可是结果老师can not open file:.....
到底要怎么弄才能够打呢?
6 回复
#2
yyblackyy2010-04-07 14:55
应该是楼主的输入有问题
我猜测的原因是输入路径 比如:"C:\C:\Documents and Settings\Administrator\桌面" 楼主对不?
           应该改成 "C:\\Documents and Settings\\Administrator\\桌面"  反斜杠"\"的输入应该是"\\"
#3
jjg2010-04-07 22:13
回复 2楼 yyblackyy
还是没有用,打不开
#4
ljt2010-04-07 22:15
回复 2楼 yyblackyy
打不开,你可以试试
#5
yyblackyy2010-04-08 08:44
可以打开的我自己试过 "C:\\Documents and Settings\\Administrator\\桌面\\你的文件",这样就可以了
#6
ljt2010-04-09 20:44
回复 5楼 yyblackyy
哎,奇怪了,我这里怎么都打不开,双斜杆也加了,试了很多次,还是没有用
#7
cnfarer2010-04-10 07:43
回复 6楼 ljt
你用什么编译器啊?这是有关系的!
1