这是我的代码:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
#include <math.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int userInput = -9999;
userInput = ReadNumber();
WriteAnswer(userInput);
system("pause");
return 0;
};
int ReadNumber ()
{
int liInput = -9999;
cin >> liInput;
return liInput;
};
void WriteAnswer(int data)
{
cout << data << endl;
};
当我尝试编译时,它说:
1&gt;错误C3861:&#39; ReadNumber&#39;:未找到标识符
1&gt;错误C3861:&#39; WriteAnswer&#39;:未找到标识符
为什么会出现上述错误?以及如何解决这个问题?
由于
答案 0 :(得分:6)
C ++源代码从头到尾编译 。
编译器到目前为止:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
#include <math.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int userInput = -9999;
userInput = ReadNumber(); // <-- What is this?
这是真的 - 没有ReadNumber
存在的证据。
在使用函数之前声明它们的存在。
int ReadNumber ();
void WriteAnswer(int data);
答案 1 :(得分:2)
您忘记输入功能原型。
int ReadNumber ( void );
void WriteAnswer(int );
在调用函数之前将它们放入代码中。
答案 2 :(得分:1)
在您的代码中,您尝试调用尚未声明的ReadNumber
函数。编译器对此函数一无所知:
int _tmain(int argc, _TCHAR* argv[])
{
...
ReadNumber(); // call to function ReadNumber, but what is ReadNumber ???
}
// definition of ReadNumber:
int ReadNumber ()
{
...
}
你应该先申报:
// declaration:
int ReadNumber();
int _tmain(int argc, _TCHAR* argv[])
{
...
ReadNumber(); // call ReadNumber that takes no arguments and returns int
}
// definition of ReadNumber:
int ReadNumber ()
{
...
}
答案 3 :(得分:0)
在第一次调用函数之前,你必须编写函数原型或函数。
在您的代码编译器中,请参阅ReadNumber()
的调用,但它不知道该函数是什么。