程序输出"15"无缘无故?
Program ouput "15" for no reason?
我今天编写了一个程序,当我最终完成它并完成调试时,它终于编译了!我认识的人的名字出现了,然后我必须输入我想要的人的名字。问题是,不管我输入什么名字,程序只是输出"15",我真的不明白为什么!
#include "stdafx.h"
#include <iostream>
#include <string>
int number;
std::string name1;
//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; commented this out because it
//never worked, I simply put it in main()
//std::cout << "Nathalie" << std::endl;
//std::cout << "Stéphanie" << std::endl;
//std::cout << "Oliver" << std::endl;
//}
std::string enterName()
{
std::cout << "Enter the name you wish to obtain the number:";
std::cin >> name1;
return name1;
}
int link(std::string name1)
{
if (name1 == "Alex")
return 9856452535;
if (name1 == "Andre")
return 5641598453;
if (name1 == "Guy")
return 8459563258;
if (name1 == "Grand-ma")
return 8457892653;
if (name1 == "Grand-pa")
return 5689852565;
if (name1 == "Jérémy")
return 7894521564;
if (name1 == "Manon")
return 8453262145;
if (name1 == "Nathalie")
return 6589253678;
if (name1 == "Stéphanie")
return 5689433645;
if (name1 == "Olivier")
return 5695658321;
}
void printNumber (int number)
{
std::cout << "The number is: " << number << std::endl;
}
int main()
{
//Make all the names appear
//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 << "Olivier" << std::endl;
//Get User's input
std::string name1 = enterName();
//Link Name to number
int number = link(name1);
//Print the desired number
printNumber(number);
std::cin.clear(); // reset any error flags
std::cin.ignore(32767, 'n');
std::cin.get(); // get one more char from the user
}
EDIT:我最初只是long
,但请参阅下面的评论线程,了解我为什么将此编辑为long long
。
我做了一些改变:
- 你的
link
函数并不总是返回值。我在底部添加了一个return 0;
,用于没有一个名称匹配的情况。 - 你的数字太大了,不适合
int
。我切换到使用long long
s无处不在。 - 我做了一个小的清理(删除未使用的代码和全局变量)。
注意,我的编译器为前两个问题生成了警告。如果没有,请考虑更改设置以确保看到有价值的警告。
下面的代码按我的预期工作:
#include <iostream>
#include <string>
std::string enterName()
{
std::string name1;
std::cout << "Enter the name you wish to obtain the number:";
std::cin >> name1;
return name1;
}
long long link(std::string name1)
{
if (name1 == "Alex")
return 9856452535;
if (name1 == "Andre")
return 5641598453;
if (name1 == "Guy")
return 8459563258;
if (name1 == "Grand-ma")
return 8457892653;
if (name1 == "Grand-pa")
return 5689852565;
if (name1 == "Jérémy")
return 7894521564;
if (name1 == "Manon")
return 8453262145;
if (name1 == "Nathalie")
return 6589253678;
if (name1 == "Stéphanie")
return 5689433645;
if (name1 == "Olivier")
return 5695658321;
return 0; // if none of the names match
}
void printNumber (long long number)
{
std::cout << "The number is: " << number << std::endl;
}
int main()
{
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 << "Olivier" << std::endl;
//Get user's input
std::string name1 = enterName();
//Link name to number
long long number = link(name1);
//Print the desired number
printNumber(number);
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- C++,系统无法执行指定的程序
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 重载操作程序时出错>>用于类中的字符串 memebr
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 试图在visual studio上用C++创建一个桌面应用程序
- 模板元程序查找相似的连续类型名称
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 如何通过cpp程序运行shell脚本
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- IPC使用多个管道和分支进程来运行Python程序
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- C++程序无缘无故结束?(哈希表)
- C++程序无缘无故地随机冻结
- C++程序在随机位置无缘无故地停止
- 将成员函数从基类移动到派生类会无缘无故地破坏程序
- 程序输出"15"无缘无故?