我正在编写一个带有用户命令和文件名的程序,例如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;
答案 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)){