C++入门:如何实现用户输入参数调用getDayOfWeek函数?
原有代码的问题说明
- 你编写的
getDayOfWeek函数内部的switch分支判断逻辑是完全正确的,不需要修改,问题全部出在main函数的输入、调用流程上。 cin >> 接收对象的语法有明确要求:接收对象必须是提前定义好、拥有固定内存空间的变量,不能直接是无参的函数调用表达式。你之前写的cin >> getDayOfWeek()存在两个硬伤:一是getDayOfWeek的形参要求传入int类型值,无参调用本身就不符合函数定义;二是函数调用的返回值是临时内存数据,没有固定存储位置,无法作为cin的输入承接目标。- 代码缺失了结果输出环节:就算正确拿到了函数的返回结果,没有通过cout打印的话,运行程序也看不到任何反馈。
正确实现步骤
- 在main函数中定义一个int类型的临时变量,用来存储用户从控制台输入的数字
- 打印简单的输入提示,再用
cin将用户输入的内容读取到这个临时变量中 - 将临时变量作为实参传入
getDayOfWeek,拿到函数返回的星期字符串后,通过cout打印到控制台
修正后的完整可运行代码
#include <iostream> using namespace std; string getDayOfWeek(int dayNum){ string dayName; switch(dayNum){ case 0: dayName = "Sunday"; break; case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; case 4: dayName = "Thursday"; break; case 5: dayName = "Friday"; break; case 6: dayName = "Saturday"; break; default: dayName = "invalid day number"; } return dayName; } int main() { int inputDay; cout << "请输入0-6之间的数字查询对应星期:" << endl; cin >> inputDay; cout << getDayOfWeek(inputDay) << endl; return 0; }
内容的提问来源于stack exchange,提问作者Quack
相关产品推荐
相关产品推荐

