分离功能从“INT主”的问题(初级)[复制]

问题描述 投票:0回答:2

你如何正确地得到作为函数的参数被称为主函数中使用时,一个变量来更新?

#include "iostream"

int getUserNumber (int input) {
    std::cout << "Please input an integer: ";
    std::cin >> input;
    return input;
}

int main () {
    std::cout << "testing getUserNumber function\n";
    int a = 104;
    getUserNumber(a);
    std::cout << "\n" << a << "\n";
    return 0;
}

每当我打印“一个”测试值,它不等于什么是进入控制台,仅返回它最初等同于104的值。我要寻找的“a”,从输入整数,如“6”通过使用getUserNumber更新。感谢您查看我的代码。

c++
2个回答
0
投票
#include "iostream"

int getUserNumber () {
    int input;
    std::cout << "Please input an integer: ";
    std::cin >> input;
    return input;
}

int main () {
    std::cout << "testing getUserNumber function\n";
    int a = getUserNumber();
    std::cout << "\n" << a << "\n";
    return 0;
}

链接重复的问题没有解释为什么是这样工作的。他们在技术上是正确的,但可以是一个有点势不可挡。让我试着解释。

当设计一个功能,你要问自己以下几个问题

  1. 什么功能从它的调用者需要?呼叫者是调用函数,即main
  2. 什么是功能还给?

例如,考虑一个名为printANumber功能

  1. 它需要知道打印什么,
  2. 它没有任何返回到它的调用者(main功能)。

所以,签名

void printANumber(int number) // void here means nothing.

现在,getUserNumber

  1. 并不需要从它的调用者(它从通过控制台用户的数量。不通过主要的功能)什么。因此,它不应该有任何参数。
  2. 它应该归还它从用户的主要功能,可以用它做任何事情得到了号码。像打印,添加它,保存等,

所以它的签名应该是:

int getUserNumber()

如果函数需要的东西,还给你拥有的东西都参数和返回值。例如。

int add(int number1, int number2) // return value is the sum of both numbers

2
投票

您可以使用返回INT。

就像是..

int getUserNumber () {
    int input;
    std::cout << "Please input an integer: ";
    std::cin >> input;
    return input;
}

in main() { 
...
    int a = getUserNumber();
...
}
© www.soinside.com 2019 - 2024. All rights reserved.