Я начал изучать 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:
Когда начать?
В вашей функции:
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 ++ и начать с нее кодирование.
«идентификатор» имя «не определено» вы не объявляете имя переменной внутри ссылки на функцию, правильным является int main (string name)
тебе это нужно string
,
«тип возвращаемого значения не соответствует типу функции», используя в качестве примера функцию int link(string name)
, если вы хотите вернуть номер телефона, или вы вернете его как 8506589 (без пробелов), или вы измените тип возврата на строку, чтобы он считал строку и принимал такие вещи, как — или пробел.
3 — Нет необходимости в заголовке stdafx, удалите эту строку и Google для понимания больше об этом.
4 — Вы объявили имя как int, вы должны были объявить как строку.
Чувак, в твоем коде так много проблем, что ты должен подумать о том, чтобы сходить на некоторые видео на YouTube, если ты пытаешься самостоятельно изучить и сначала посмотреть видео для программирования на c, попробуй потом видео из Нью-Бостона … Я помог с несколькими твоими ошибками.