C++函数使用默认char参数时无法正常工作[重复]

mtb9vblg  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(95)
    • 此问题在此处已有答案**:

Using the default value in the middle of a function C++(2个答案)
C++ using only one default argument in function(3个答案)
昨天关门了。
我有一个代码片段,其中C++函数是用char和int类型的默认参数声明的。

#include <iostream>

using namespace std;

int print(char c = '*', int num = 10);

int print(char c, int num)

{

    for (int i = 0; i < num; i++)

    {

        cout << c << endl ;

    }

    cout << endl;

    return 0;

}

int main()

{

    int rep;

    char letter;

    cout << "Enter a character : ";

    cin >> letter;

    cout << "Enter the number of times it has to repeat : ";

    cin >> rep;

    

    print(letter, rep);


    print(rep);

    print(letter);

    

    return 0;

}
    • print(rep)没有输出;**

即使字符的默认参数是给定的。知道为什么会发生这种情况吗?
我尝试使用默认参数,但是char的默认参数没有按预期工作,并且没有预期的字符输出。

oxcyiej7

oxcyiej71#

参数仍然是正确的。你只能省略末尾的参数。当你调用print(rep)时,整数被转换成charnum被默认。你会注意到,如果你输入“65”('A'的代码)作为rep的值。

相关问题