尝试将用户输入传递到字符串中 (C++)

Trying to pass user input into string (C++)

提问人:Dame 提问时间:11/20/2019 更新时间:11/20/2019 访问量:39

问:

我目前正在研究字符串并处理这个简单的示例。我正在尝试将“birthdate”用户输入传递到我的 logSuccess 字符串中。做了很多谷歌搜索,但还没有找到解决方案。有什么提示吗?

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

using namespace std;

std::string birthdate;

void printString(const std::string& string)
{
   std::cout << string << std::endl;
}

void getBirthdate()
{
   std::cout<<"When is your birthday? "<<std::endl;
   cin>>birthdate;
}

int main()
{
std::string name = std::string("Dame") + " hello!";
std::string logSuccess = std::string("Thank you! We will send you a postcard on ") + birthdate;


printString(name);
getBirthdate();
printString(logSuccess);


std::cin.get();
}
C++ 字符串 按引用传递

评论

1赞 Some programmer dude 11/20/2019
想想你做事的顺序!您没有循环,因此函数中的代码将严格从上到下执行。main

答:

3赞 Glamdring 11/20/2019 #1

在创建消息并将其分配给 logSuccess 变量时,birthdate 变量为空。您希望在从用户获取输入后使用数据填充 logSuccess。

评论

0赞 Dame 11/20/2019
哦,好的,所以我只需要在声明我的 getBirtdate 函数后放置 logSuccess 变量/消息,然后打印字符串
0赞 Glamdring 11/20/2019
完全。您仍应在函数的开头声明变量,因为这是一种很好的编程实践,但在获取输入后将出生日期附加到 logSuccess。
0赞 Bill Chen 11/20/2019 #2

您的错误如下:

std::string logSuccess = std::string("Thank you! We will send you a postcard on ") + birthdate;
printString(name);
getBirthdate();
printString(logSuccess);

它应该是:

string name = string("Dame") + " hello!";
string logSuccess = "Thank you! We will send you a postcard on " ;

printString(name);
getBirthdate();
logSuccess += birthdate;
printString(logSuccess);

评论

0赞 Dame 11/20/2019
明白了。进行了调整,它就像一个魅力