まず、ストリームワーク(どのように私は記述された結果を得るのですか)をどうやって行うのですか? C++標準(セクション1.9、条項15)によれば
:
記載した以外は、個々のオペレータのおよび個々の表現の部分式のオペランドの評価がunsequencedあります。
同じスカラーオブジェクトの別の副作用または同じスカラーオブジェクトの値を使用する値計算と比較して、スカラオブジェクトの副作用が順序付けされておらず、潜在的に並行でない場合の動作は未定義です。お使いの場合に適用
:
第二に、私はそれが仕事を得るために何をすべきでしょうか?
単一の大きな出力式を複数の行に分割すると、各++index
文が別々の行になるようにすることができます。
また、ループを使用して問題とreduce repetitionの両方を解決できます。 example.cc
として
#include <array>
#include <iostream>
#include <string>
int main() {
static const std::array<std::string, 3> lines = {
"First line",
"Second line",
"Last line",
};
for (int i = 0; i < lines.size(); ++i) {
std::cout << i + 1 << ") " << lines[i] << std::endl;
}
}
保存これ、および使用してコンパイルします:たとえば
その後
clang++ -std=c++14 example.cc -o example
例を実行します。これは標準出力に出力していること
$ ./example
1) First line
2) Second line
3) Last line
注意を例を簡略化するために、std::cout
使用例に応じてstd::ofstream
のインスタンスに簡単に置き換えることができます。
あなたの質問に答えることなく、それぞれのコードラインの始めに 'outputFile'を入れ、各コードラインの最後に(' endl'の直後に) ';'を入れれば完了です。 –
同じステートメント内の同じ変数に '++'を使うのは未定義の振る舞いです(おおまかに言えば、あまりにも大きすぎてコメントに収まりません)。これを避けるには、より多くのセミコロンを使うか、 'index + 1'、' index + 2'などを書いてください。 –