无法读取两个文件?

时间:2014-09-11 18:43:44

标签: c++ loops

我正在编写一个带有用户命令和文件名的程序,例如command1或command2。目前,我猜测我的循环结构有问题,因为在文件上使用命令后,我再也无法在另一个文件上使用它了。

例如;

command1 example.txt
... works...
command1 anotherexample.txt
wrong command! try again!

如何修复代码,以便命令每次都可以在任何文件上运行?我知道这与我构建代码的方式有关,但我似乎无法修复它。

while (getline(cin, str1)){

    if (str1 == "bye")
    {
        return 0;

    } else {
        s1.str (str1);
        s1 >> command;
        s1 >> filename;
        ifs.open(filename.c_str()); 

        if (ifs.fail()) {                                                       
            cerr << "ERROR: Failed to open file " << filename << endl;   
            ifs.clear();   

        } else { 

            if (str1 == "command1 " + filename) {
                command1(filename);

            } else if (str1 == "command2 " + filename) {
                command2(filename);                                                                 

            }   else {
                cout << "Wrong command! try again!" << endl;
            } 
        }
        ifs.close();
    }
}
return 0;

1 个答案:

答案 0 :(得分:0)

而不是cin将参数传递给main并将其用作ifsteam的文件名

 #include <fstream>


 int main(int argc, char** argv){
    // you may have  a type problem just convert it into the correct type

    std::ifstream file(argv[1]);
    while (getline(file, str1)){