C++ 双倍数字程序意外值 关于节目

C++ 双倍数字程序意外值 关于节目,c++,function,pass-by-reference,C++,Function,Pass By Reference,该程序获取用户输入的数字,并将该数字加倍输出。我创建了两个函数,一个用于收集数字(getnumber),另一个用于将数字加倍(doublenumber)。程序运行正常;然而,输出并不完全准确 问题 输出仅部分正确。即用户输入50,值加倍,输出应为100。相反,该值输出为100114。只有前几个数字似乎是我想要的 源代码: #包括 无效双数(int&); 无效getnumber(int&); int main(){ int值; getnumber(值); 双数(值); std::cin.get()

该程序获取用户输入的数字,并将该数字加倍输出。我创建了两个函数,一个用于收集数字(getnumber),另一个用于将数字加倍(doublenumber)。程序运行正常;然而,输出并不完全准确

问题 输出仅部分正确。即用户输入50,值加倍,输出应为100。相反,该值输出为100114。只有前几个数字似乎是我想要的

源代码:
#包括
无效双数(int&);
无效getnumber(int&);
int main(){
int值;
getnumber(值);
双数(值);
std::cin.get();
std::cin.get();
返回0;
}
无效双代号(int和refvar){
refvar*=2;

std::cout在仔细查看代码后,我回答了自己的问题。啊!一个非常简单的错误是:

 std::cout << "\nThe value you entered doubled is: " << refvar << '.\n';

std::cout在仔细阅读代码后,我回答了自己的问题。啊!一个非常简单的错误是:

 std::cout << "\nThe value you entered doubled is: " << refvar << '.\n';

std::cout
std::cout
std::cout原始代码输出
100
(正确答案),然后立即输出多字符文本值
。\n'
,解释为
int
:原始代码输出
100
(正确答案)紧接着是多字符文字的值
。\n'
,它被解释为
int
std::cout << "\nThe value you entered doubled is: " << refvar << '.\n';
                                                                 ^^^^^
                                                                   |
                                                         multicharacter literal