C++で(scan()
などのような)関数を持つことが可能であるかどうかは、std::cin
の構文と同じですか? C++ 17ではC + +で 'std :: cin'を 'scan()'関数にする方法はありますか?
std::cin >> data; // or
scan(data);
C++で(scan()
などのような)関数を持つことが可能であるかどうかは、std::cin
の構文と同じですか? C++ 17ではC + +で 'std :: cin'を 'scan()'関数にする方法はありますか?
std::cin >> data; // or
scan(data);
、あなたは、引数の任意の量を取り、あなたのためのcin >> a >> b >> c >> ...
チェーンを生成する関数を作成するためにvariadic templateとfold expressionを使用することができます。
template <typename... Ts>
std::istream& scan(Ts&... xs)
{
return (std::cin >> ... >> xs);
}
は使用方法:
int i;
double j;
scan(i);
scan(i, j);
if (scan(i, j))
std::cout << "Read " << i << ", " << j << "\n";
else
std::cout << "Invalid input\n";
申し訳ありませんが、私はまだC++の初心者ですから、説明はいいと思います。ありがとう – Oluwafunmito
いくつかの情報を追加し、バリデーショナルテンプレートに関する記事を探し、ラーニングリソース用の折り畳み式 –
@VittorioRomeo:折り畳み式なしでこれを行うことができますか? – geza
あなたはちょうどあなたがあなたが入力した文字列を要求されますと、あなたの入力が割り当てられます。この
void scan(std::string & input)
{
std::string newInput;
cin << newInput;
input = newInput;
}
std::string myString;
scan(myString);
ような何かを行うことができ、あなたの入力に基づいて、あなたが渡すのparamaterに値を割り当てられた機能を作りたい場合myStringに。
あなたは何が起こると思いますかについての完全な説明があります。 – StoryTeller
私はちょうどJavaScriptからロールオーバーし、私はPHPを学んでいます。そこで私は、C++でI/O( 'cout'と' cin')のための関数を持つのが良いと考えました。 – Oluwafunmito
いいですね。しかし、それはあなたが何が起こると予想するか説明していません。 C++を知っている人もJavascriptやPHPを知っていると仮定しないでください。 – StoryTeller