当我编译的时候,我总是得到构建失败?我正在使用Xcode
When i compile i keep getting build failed? I am using Xcode
我不知道为什么这不起作用。我不知道这是否与传递函数或创建变量的方式有关。但是我的家庭作业必须使用toDigit
函数。
#include <iostream>
#include <fstream>
using namespace std;
int toDigit(char &);
int main(){
int number;
char isbn;
ifstream inputFile;
inputFile.open("numbers.txt");
while (inputFile >> isbn) {
number = toDigit(isbn);
cout << number << endl;
}
inputFile.close();
return 0;
}
int toDigit(char ch){
return ch - '0';
}
最初,您将toDigit声明为
int toDigit(char &);
它将被解读为:一个返回int的函数,该函数接受一个参数,该参数是对char的引用。
然后,稍后您定义这个函数如下:
int toDigit(char ch){
return ch - '0';
}
可以这样理解:一个函数返回一个int,该int接受一个char参数。
你看到区别了吗?提示:引用。
在c++中,定义需要与声明相同,因此需要使它们相同。
任一:
申报
int toDigit(char );
// ^^ no &
或
使定义
int toDigit(char & ch){
// ^^ & added
return ch - '0';
}
在这种情况下,第一个选项更有意义,因为你不需要读取访问-字符和字符可以有效地复制,所以复制就可以了。
相关文章:
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- docker 构建失败:无法设置环境变量
- 构建失败错误:无法使用 qibuild 构建C++ SDK Helloworld
- 使用提升库构建失败
- Vcpkg Pango CMake 构建失败缺少头文件
- 调试模板时出现问题.专门针对 Linux GCC 7、GCC 6、GCC 5、GCC 4.9 错误构建失败:模板参数 1
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- 如何在 Linux 中构建共享库时使未定义引用的链接器失败
- 构建 C++ Allegro 5 在 Linux Mint QT 上失败
- CUDA opencv 构建失败 - 缺少实际存在的文件
- 电报上的构建命令失败
- Xcode OSX上的C++构建失败,出现多个错误文件IO..不可用:在macOS 10.15中引入
- exteranl原生构建问题,构建命令失败,android工作室
- 构建音频分析库Essentia在Gaia支持下失败了
- MXE Qt5 应用程序构建在 Docker 容器中失败
- Bazel 使用 ccache 构建C++示例失败
- 错误:无法构建 PhantomJS!构建Qt基地失败
- 使用 QT 执行二进制构建失败
- 失败构建和破坏之间的C++代码重用