使用Cin和Argv

时间:2012-11-29 03:11:38

标签: c++ cin argv

如何在脚本中组合cin和argv?

int main(int argc, char* argv[])
c == argv[1];
cin >> c;

如果有命令行参数,你如何忽略cin,如果没有命令行参数,你如何忽略cin?

2 个答案:

答案 0 :(得分:1)

string s;

if(argc == 2) 
    s = argv[1];
else
    cin >> s;

... do stuff here ...

答案 1 :(得分:1)

对象std::cin和类std::ifstream的对象都共享一个公共基类:std::istream。您可以使用此事实将cinifstream传递给常用函数:

void DoOne(std::istream& in) {
  int x;
  in >> x; // etc etc
}

int main (int ac, char **av) {
  if(ac == 1)
    DoOne(std::cin);
  else {
    for(i = 1; i < ac; ++i) {
      std::ifstream inFile(av[i]);
      DoOne(inFile);
    }
}