如何在C ++中打印带空格的字符作为字符串

时间:2014-08-07 11:59:01

标签: c++

代码未提供所需的输出 当我输入一个字符串示例" Ben Parker "时,输出为" Goodmorning,Ben "而不是整个名字(" Ben Parker")似乎是什么问题?

#include <iostream>
#include <stdlib.h> 
#include <cstring>

int main() {
char your_name[20];

std::cout << "Enter your name: ";
std::cin >> your_name;
std::cout << "Goodmorning, ";
std::cout.write (your_name, strlen(your_name)) << std::endl;

return 0;
}

当我刚刚开始编程时,这是一个非常古老的问题。 可以使用for循环读取和打印整个字符数组,或者可以使用更好的string类型变量,因为它是C ++。

使用string your_name;似乎可以解决问题,然后可以使用简单的std::cout << your_name << endl;打印

1 个答案:

答案 0 :(得分:3)

你可能会在...之间放置一个空间&#34; Ben&#34;和&#34;帕克&#34;在输入中。这会导致cin逻辑在看到&#34; Ben&#34;之后的空格时认为它有答案。您可能希望一次读取整行以解决该问题。有关示例,请参阅this页。