随机1个未解决的外部错误
random 1 unresolved external error
所以我在c++程序中收到了一条奇怪的错误消息。目前正在使用visual Studio(2012(。我有一个程序,它会把一个数字的每一个数字相加,所以1234567就像7+5+3+1=16,然后我把所有未相加的数字乘以2,然后把它们加起来。然后我把第一个的结果加起来(16(,再加上第二个的结果。这是我的代码:
#include <iostream>
#include <cmath>
#include <string>
#include <sstream>
using namespace std;
int sumAltDigits(int);
int sumNonDigits(int);
int main() {
long cardNumber; //cardNumber must stay as 'long'. Teacher says so.
string in;
stringstream ss;
int total;
cout << "Please enter a chain of integers: ";
getline(cin, in);
ss.clear(); ss.str(in);
while (!(ss >> cardNumber) || (cardNumber < 1)); {
cout << sumAltDigits(cardNumber) << endl;
//get answer
total = sumAltDigits(cardNumber) + sumNonDigits(cardNumber); //this line causes me an error, sumNonDigits(cardNumber)
}
system("pause");
}
// adds every other digit, starting from the right
int sumAltDigits(int cardNumber)
{
if (cardNumber < 10)
return cardNumber;
return (cardNumber % 10) + sumAltDigits(cardNumber / 100);
}
// adds digits that were not included in previous step, multiply them by 2, then add all digits in those numbers
int sumNonDigits(string cardNumber) // I think the error is also being caused by string cardNumber, but if i try to change that, it screws up this function.
{
int checkSum = 0;
int i;
for (i = cardNumber.length() - 2; i >= 0; i -= 2) {
int val = ((cardNumber[i] - '0') * 2);
while (val > 0) {
checkSum += (val % 10);
val /= 10;
cout << checkSum << endl;
}
}
return checkSum;
}
您已经转发声明(并调用(:
int sumNonDigits(int);
但你已经定义了:
int sumNonDigits(string cardNumber)
您需要更改其中一个以匹配另一个。
如果您将两者都更改为:
int sumNonDigits(string cardNumber)
这可能意味着工作量减少,但您需要在此处更改呼叫:
total = sumAltDigits(cardNumber) + sumNonDigits(cardNumber);
以传入[std::]string
,而不是cardNumber
,即long
。输入字符串in
可能是一个很好的替换,或者您可能需要将cardNumber
转换回string
。只有你可以选择!
您有一个int sumNonDigits(string cardNumber)
,但声明了int sumNonDigits(int);
。您正在呼叫线路中的sumNonDigits(int)
。。。
total = sumAltDigits(cardNumber) + sumNonDigits(cardNumber);
但这是一个未解决的外部问题,因为没有定义。
我建议暂时完全避免函数声明,并将函数体放在它们的第一个使用点之上。
相关文章:
- Visual Studio 2017 中的 QtMetaObject 未解决的外部错误
- 无法确定未解决的外部错误来自何处
- DLIB On visual studio 2015抛出一个未解决的外部错误
- 排除外部错误R6025-纯虚拟函数调用
- 如何在我的指针和阵列功能中修复未解决的外部错误-LNK2019和LNK1120
- 将外部错误代码映射到std :: error_condition
- 虚拟函数未解决的外部错误
- 非常简单的 x64 组装/C++应用程序中未解决的外部错误
- 链接到SFML的未解决的外部错误(SFML 2.2,Visual Studio Community 2013)
- 为什么我的代码会出现LNK2019未解决的外部错误
- 尝试重载=运算符时出现1个未解析的外部错误
- c++中链表代码中未解决的外部错误
- 操作员过载未解决的外部错误LNK1120、LNK2019
- 未解决的外部错误
- 模板上的算术运算符过载,导致无法解析的外部错误
- 致命错误LNK1120:1 个未解析的外部 & 错误 LNK2019:函数___tmainCRTStartup中引用_main未解析的外部符号
- 模板c++中未解决的外部错误
- C++程序使用 C 库标头将"this"识别为关键字。外部"C"错误?
- DLL LNK2019错误(未解析的外部错误__imp)
- 如何将DLL链接到我的主项目?(正在获取未解析的外部错误)