C++ C++;-有一个;未初始化的局部变量y已使用“;在我尝试制作一个简单计算器时发出警告
这是我的第一篇文章。我有一个问题,让我的CML计算器运行,我知道有更好的方法,使一个计算器比我的代码,所以请留下的意见等,因为我是一个初学者程序员,重要的是收到反馈 函数实践.cppC++ C++;-有一个;未初始化的局部变量y已使用“;在我尝试制作一个简单计算器时发出警告,c++,function,C++,Function,这是我的第一篇文章。我有一个问题,让我的CML计算器运行,我知道有更好的方法,使一个计算器比我的代码,所以请留下的意见等,因为我是一个初学者程序员,重要的是收到反馈 函数实践.cpp #include "pch.h" #include <iostream> #include "functions.cpp" using namespace std; int main() { int x; int y; char oper; cout <<
#include "pch.h"
#include <iostream>
#include "functions.cpp"
using namespace std;
int main()
{
int x;
int y;
char oper;
cout << "Welcome to this test calculator" << endl;
cout << "Please Enter a operator to use: " << endl;
cin >> oper;
cout << "Enter a x and y value " << endl;
cin >> x, y;
calculate(x, y, oper);
return 0;
}
#包括“pch.h”
#包括
#包括“functions.cpp”
使用名称空间std;
int main()
{
int x;
int-y;
字符操作器;
文件practice.cpp
中的cout:
cin>>x,y;
应该是cin>>x>>y;
cin>>x,y;
将仅读取x
的输入
在这里,,
作为cin
部分的结尾,而y
将像一个单独的部分一样工作
对《守则》中的以下内容的理解:
逗号运算符将始终优先于最右边的运算符
例:x=(y,z);
在此行中,z
的值将分配给x
同样,在cin>>x,y;
行中,y
不执行任何操作。然后cin>>x
将读取用户的输入。排序输入:cin>>x,y;
->cin>>x>>y;
调试问题应包括错误消息(复制并粘贴为文本)。这也是为了解释为什么您的代码不应触发该错误。在这种情况下,错误消息将指出哪个变量未初始化,您的任务将是指出初始化该变量的行。functions practice.cpp(22):错误C4700:未初始化的局部变量“y”used#include“functions.cpp”
也是一个潜在的问题。您应该包括头文件,通常是.h文件,并编译和链接实现文件。#include
将包含的文件复制到包含文件中。如果出现这种情况,像Visual Studio这样的IDE可能会看到functions.cpp,并执行通常的操作,编译和链接它。现在您有了函数practice.cpp和functions.cpp中包含的ns.cpp都定义了相同的函数,链接器不喜欢这样。它不知道哪个是真正的calculate
,并将发出错误。
#include "functions.h"
#include "pch.h"
#include <iostream>
using namespace std;
int calculate(int x, int y, char oper) {
switch (oper)
{
case '-':
return x - y;
break;
case '+':
return x + y;
break;
case '*':
return x * y;
break;
case '/':
return x / y;
break;
default:
break;
}
return 1;
}