このforループではcout文の中にいる間自体を上書きCOUT:C++ループ
名:COUTは、印刷すべきか
for (vector<Student>::iterator qw = students.begin(); qw != students.end(); ++qw){ Student a = *qw; name = a.getName(); regno = a.getRegNo(); std::cout << "Name: "<< name << " Reg Number: " << regno << endl; }
は、いくつかの奇妙な振る舞いを作成して、このようなものです:マイク・サンダーソンREG数は:10101
しかしそれは実際にそれをプリントアウトした:
REG数:10101on
それは私には思われる、それは行の先頭に戻って、それ自体を上書きするが、なぜされCOUT文の第二部の後? 皆さん、私を助けてくれることを願っております。
「スチューデント」は3つのルールに従わずにダイナミックメモリを割り当てられたポインタを持つことはありませんか? – chris
'name'はどのような型ですか? 'a.getName()'は何を返しますか? ( 'cout'行の直前にデバッグブレークポイントを置き、' name'と 'regno'の内容を見てください) –
@DavidSchwartzはい私はそれを入れておくべきです、名前はstd :: stringで、a.getName私が見て、それははずの」を持たなければならないのp –