2015-05-15 51 views
-1

我希望我的std::cout打印000111222333 ...,但什麼我得到的卻是0111222333 ...,我不知道爲什麼,這裏是我的代碼:創建序列000111222 ...在C++

int threeCounter =1; 
int outPut =0; 
for (int i =0; i<300;i++){ 

    if(threeCounter > 3){ 
     outPut++ ; 
     threeCounter=1; 

    } 

    cout << outPut << endl; 
    threeCounter++; 

} 

我試圖在MATLAB中非常相同的代碼,它的產生正確的順序:

threeCounter=1; 
outPut =0; 
for i =1:300 

    if(threeCounter >3) 

     outPut=outPut+1; 
     threeCounter=1; 

    end 
    disp(outPut) 
    threeCounter=threeCounter+1; 

end 
+0

「非常相同」的代碼?不是。並停止思考所有語言具有相同的語義。 – deviantfan

+1

我無法重現您的錯誤。 – Beta

+3

數字的前導零可能不會顯示。參見'fill' I/O操縱器。 –

回答

0

用C試試這個代碼++:

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
for (int i =0; i<300;i++){ 
    string outPut = ""; 
    int threeCounter =0; 
    while(threeCounter < 3){ 
     outPut = outPut+to_string(i) ; 
     threeCounter+=1; 

    } 

    cout << outPut; 
    threeCounter++; 

} 

} 
+0

「to_string」在C++ 11之前不可用。告訴您的編譯器使用C++ 11功能。 –