スクリプトでcinとargvを組み合わせるにはどうすればよいですか?
int main(int argc, char* argv[])
c == argv[1];
cin >> c;
コマンドライン引数がある場合はcinを無視し、コマンドライン引数がない場合はcinをどのように無視しますか?
string s;
if(argc == 2)
s = argv[1];
else
cin >> s;
... do stuff here ...
オブジェクトstd::cin
とクラスのオブジェクトはstd::ifstream
両方とも、共通の基本クラスを共有しますstd::istream
。このファクトを使用して、cin
またはifstream
を共通関数に渡すことができます。
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);
}
}