printf末尾不需要的字符

时间:2016-10-18 13:53:03

标签: c++ string printf

我编写了一个小程序,它接受一个字符串输入,并输出字符串,每个字符数向上移动3.只有问题是在每个字符串的末尾打印一个%字符。

#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% 

1 个答案:

答案 0 :(得分:6)

您看到的是程序结束后来自您的shell的提示,因为您没有打印换行符。

printf("\n");退出之前向main右侧投掷,您将获得所需的结果。

通过添加换行符演示工作代码:http://melpon.org/wandbox/permlink/ojJ7mozen4TA4qke