几天前我开始学习 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次)
- “”名称“:未声明的标识符”
- ”“link: function-style initializer 似乎是一个函数定义”
- “术语不评估为带 1 个参数的函数”
原文由 Birdy McBirdFace 发布,翻译遵循 CC BY-SA 4.0 许可协议
从哪儿开始?
1. 为什么名字应该是数字?
在您的功能中:
用户应该插入一个 _名称_,但
name
变量的类型已声明为int
(这是 整数 类型)。我现在的问题是: 为什么一个人的名字应该编成一个数字?如何解决这个问题?
只需使用 字符串 类型。
注意:关于如何从标准输入中获取字符串有很多考虑,但我不是你的 c++ 老师,在你的情况下,我认为这个论点现在离你的技能还很远。
2. C++ 是静态类型语言( _或多或少_)。
另一个问题在这里:
在您的声明函数中
name
没有类型。这是一个错误!变量必须具有类型作为参数。此外,您的 body 函数返回一个“ _字符串_”类型:
那么为什么你声明你的函数返回一个
int
类型?正确的形式:
3. 又…
即使在这个函数中,类型也是错误的:
它应该是:
void
作为返回类型,因为您的函数不返回任何内容。最终结论
我发现您缺乏有关该语言的基本技能。我建议你学习一本好的 C++ 书籍,然后从那里开始编码。