【发布时间】:2014-07-04 21:48:16
【问题描述】:
我已经开始学习 c++ 编程,只是在玩弄不同的命令,似乎很难使用原型函数并执行它们。我对所有事情都使用 CodeBlocks。我的代码是简单地设置一个密码,并让用户输入密码以继续。看起来很简单,对吧?就我现在而言,这就是我所拥有的。 (我没有进一步了解,因为我很早就发现了错误)
#include<cstdlib>
#include<cstdio>
#include<iostream>
using namespace std;
// prototype declaration
int getPassword(int nPassword);
// declare combo to be matched
const int nCombo = 3141
int main(int nNumberofArgs, char* pszArgs[])
{
getPassword();
return 0;
}
// fetch password from user to compare to nCombo
int getPassword(int nPassword)
{
cout << "Please enter password..." << endl;
cin >> nPassword;
return nPassword;
}
当我按原样运行这个程序时,屏幕上没有出现 cout 行,程序终止,什么也没做。请帮我解决一下这个。非常令人沮丧。
【问题讨论】:
-
您的函数需要一个 int 参数,但您在没有参数的情况下调用了它。您的意思是在
main中使用cin并将该值传递给getPassword? -
当你粘贴它时,它不会编译更不用说运行 - 你在 const int nCombo = 3141 之后缺少一个分号,你正在调用 getPassword();没有所需的 INT 参数。
-
getPassword()采用int类型,你什么也没传递。我很惊讶它编译。此外,在使用之前,您会立即覆盖函数内部的变量nPassword。这使得按值传递它完全没用。 -
尽可能不要使用函数原型,而是对函数重新排序,以便在使用该函数的任何代码行之前定义函数。如果您有在多个文件中调用的函数,则必须使用函数原型。但是,如果该函数仅在定义该函数的源代码所在的文件中使用,那么在使用该函数之前通常更容易获得函数定义及其主体,因此该函数定义用作原型。所以把函数
getPassword()移到main()上面,去掉原型。