& quot; тип возвращаемого значения не соответствует типу функции & quot; и другие ошибки компиляции VS

Я начал изучать C ++ несколько дней назад, и теперь я пытаюсь сделать свою первую программу — приложение «телефонной книги». Появятся имена людей, которых я знаю, я введу имя человека, которому нужен номер, и появится их номер.

Но сейчас я некоторое время отлаживаю и до сих пор не понимаю, что не так с моим кодом! Я уверен, что это очевидно, но я слишком новичок, чтобы понять это.

    #include <stdafx.h> // Visual Studio users need to uncomment this line
#include <iostream>

int nameAppears()
{
std::cout << "Alex" <<    std::endl;
std::cout << "Andre" << std::endl;
std::cout << "Guy" <<   std::endl;
std::cout << "Grand-ma" <<        std::endl;
std::cout << "Grand-pa" <<        std::endl;
std::cout << "Jérémy" <<  std::endl;
std::cout << "Manon" <<   std::endl;
std::cout << "Nathalie" <<  std::endl;
std::cout << "Stéphanie" << std::endl;
std::cout << "Oliver" << std::endl;
}int enterName()
{
std::cout << "Enter the name you wish to obtain the number:";
int name;
std::cin >> name;
return name;
}int link(name)
{
if (name == "Alex")
return "586 6532";
if (name == "Andre")
return "569 8522";
if (name == "Guy")
return "850 6589";
if (name == "Grand-ma")
return "482 4875";
if (name == "Grand-pa")
return "453 9963";
if (name == "Jérémy")
return "654 3828";
if (name == "Manon")
return "965 4541";
if (name == "Nathalie")
return "770 6916";
if (name == "Stéphanie")
return "546 5482 ";
if (name == "Oliver")
return "246 5554";
}int printNumber (int number)
{
std::cout << "The number is: " << number << std::endl;
}int main()
{
//Make all the names appear
nameAppears();

//Get User's input
int name = enterName();

//Link Name to number
int number = link(name);

//Print the desired number
printNumber(number);
}

Вот список всех ошибок, которые я получил при компиляции в Visual Studio 2013:

  • «не могу открыть исходный файл» stdafx.h «»
  • «идентификатор» имя «не определено» (2 раза подряд)
  • «тип возвращаемого значения не соответствует типу функции» (10 раз подряд)
  • «» имя «: необъявленный идентификатор»
  • «» ссылка: инициализатор в стиле функции выглядит как определение функции «
  • «Термин не относится к функции, принимающей 1 аргумент»

-1

Решение

Когда начать?

В вашей функции:

int enterName()
{
std::cout << "Enter the name you wish to obtain the number:";
int name;
std::cin >> name;
return name;
}

Пользователь должен вставить название но тип name переменная была объявлена ​​как int (который является типом для целое число число). Мой вопрос сейчас: почему имя человека должно кодироваться как число?

Как это решить?

Просто используя строка тип.

#include <string>  // You have to include this header to use string object

// ...

std::string enterName()
{
std::cout << "Enter the name you wish to obtain the number:";
std::string name;
std::cin >> name;
return name;
}

Примечание: есть много соображений о том, как получить строку из стандартного ввода, но я не ваш учитель C ++, и в вашем случае я думаю, что аргумент очень далек от ваших навыков сейчас.

Другая проблема здесь:

int link(name)
{
// do something ...
}

В вашей функции объявления name не имеет типа. Это ошибка! Переменная должна иметь тип в качестве аргумента.

Кроме того, ваша функция тела возвращает «строка» тип:

return "965 4541";  // return a const char[]

Так почему вы объявили, что ваша функция возвращает int тип?

Правильная форма:

std::string link(const std::string& name)  // declaration signature

Даже в этой функции тип неправильный:

int printNumber (int number)
{
std::cout << "The number is: " << number << std::endl;
}

Так должно быть:

void printNumber (const std::string& number)
{
std::cout << "The number is: " << number << std::endl;
}

void как возвращаемый тип, потому что ваша функция ничего не возвращает.

Я вижу недостаток ваших базовых навыков в отношении языка. Я предлагаю вам изучить хорошую книгу по C ++ и начать с нее кодирование.

1

Другие решения

  1. «идентификатор» имя «не определено» вы не объявляете имя переменной внутри ссылки на функцию, правильным является int main (string name)тебе это нужно string,

  2. «тип возвращаемого значения не соответствует типу функции», используя в качестве примера функцию int link(string name), если вы хотите вернуть номер телефона, или вы вернете его как 8506589 (без пробелов), или вы измените тип возврата на строку, чтобы он считал строку и принимал такие вещи, как — или пробел.

3 — Нет необходимости в заголовке stdafx, удалите эту строку и Google для понимания больше об этом.

4 — Вы объявили имя как int, вы должны были объявить как строку.

Чувак, в твоем коде так много проблем, что ты должен подумать о том, чтобы сходить на некоторые видео на YouTube, если ты пытаешься самостоятельно изучить и сначала посмотреть видео для программирования на c, попробуй потом видео из Нью-Бостона … Я помог с несколькими твоими ошибками.

0

По вопросам рекламы [email protected]