当我编译的时候,我总是得到构建失败?我正在使用Xcode

When i compile i keep getting build failed? I am using Xcode

本文关键字:失败 构建 Xcode 编译      更新时间:2023-10-16

我不知道为什么这不起作用。我不知道这是否与传递函数或创建变量的方式有关。但是我的家庭作业必须使用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';
}

在这种情况下,第一个选项更有意义,因为你不需要读取访问-字符和字符可以有效地复制,所以复制就可以了。