2016-10-18 10 views
0

私は文字列入力を受け取り、各文字番号を3つ上に移動した文字列を出力しました。文字列の最後には%という文字しか印刷されません。printfの最後の不要な文字

#include <iostream> 
#include <stdio.h> 
#include <string> 

int main() 
{ 
    std::cout << "Input message: " << std::endl; 
    std::string mes; 
    std::cin >> mes; 
    for(char& c : mes) 
    { 
     printf ("%c", c+3); 
    } 
} 

これは、プログラムの使用と出力されます:

Input message: 
hi 
kl% 
+0

のstd :: coutのとprintfの? OK、どうしてですか? – Treycos

+0

@krzaq nice find。 – xaxxon

答えて

4

あなたが見ている何をあなたのプログラムが終了した後に改行を印刷していないことから、自分の殻からプロンプトです。

main出口の直前にprintf("\n");を投げて、あなたが望む結果を得ることができます。改行を追加することで、コードを作業の

デモ:同じプログラムでhttp://melpon.org/wandbox/permlink/ojJ7mozen4TA4qke

関連する問題