C++の質問
Posted: 2010年4月16日(金) 07:20
独学でプログラミングの勉強を始めたのですが、作ったコードが思ったように動かず困っています。
わかる方がいらっしゃいましたら解説して頂けると助かります。
#include <iostream>
using namespace std;
int main(){
string str = "123456789";
for(int i = 0; i < 10; i++){
cout << str;
if(str == 5) ←ここがおかしいらしい
cout << "#";
}
return 0;
}
このコードで実行結果として12345#6789という文字列が出力されることを期待していたのですが、実際には123456789と表示されてしまいました。
いろいろと作り変えて試していたのですが、
if(str == 5) を if(str > 5)
に置き換えると全ての数字の後ろに#が表示されるようです。
このif文の条件式で、関係演算子==は何を比較してしまっているのでしょうか?
よろしくお願いします。
わかる方がいらっしゃいましたら解説して頂けると助かります。
#include <iostream>
using namespace std;
int main(){
string str = "123456789";
for(int i = 0; i < 10; i++){
cout << str;
if(str == 5) ←ここがおかしいらしい
cout << "#";
}
return 0;
}
このコードで実行結果として12345#6789という文字列が出力されることを期待していたのですが、実際には123456789と表示されてしまいました。
いろいろと作り変えて試していたのですが、
if(str == 5) を if(str > 5)
に置き換えると全ての数字の後ろに#が表示されるようです。
このif文の条件式で、関係演算子==は何を比較してしまっているのでしょうか?
よろしくお願いします。