怎样在条件判断后,如果不满足条件退出程序?

blackpool 2009-08-12 05:13:37
一个函数中,需要在不满足判断条件的情况下显示错误信息然后退出程序,写了如下代码:


int TestCode::testProgram(const int &test){
...

if (i <= 3)
m[n] = i;
else
{
cerr << "Error of the input!" << endl;
return EXIT_FAILURE;
}

...
}


但是此时函数的返回值必须是int,因为返回了EXIT_FAILURE。如果我想把函数返回值定义为vector或别的类型,怎样办呢?谢谢!
...全文
1955 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mstlq 2009-08-14
  • 打赏
  • 举报
回复
楼主要退出程序还是要退出函数呢?
如果是退出程序,那么返回的vector由谁来接收呢^_^?
2009-08-14
  • 打赏
  • 举报
回复
想中途跑路还是用exit()最方便。
yangs2000 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blackpool 的回复:]
直接返回
vector TestCode::testProgram(const int &test){
...
v = error_vec;
return v;
}

不是个好的办法,是吗?

用参数返回有什么好处吗?我只要返回一个vector的值,不需要多个返回值,是用出参返回还是直接返回好呢?谢谢回帖的朋友!
[/Quote]


如果返回值大于32或者64字节的时候(返回值不会使用CPU寄存器返回)最好使用出参返回.否则使用直接返回.这样可以节省栈内存.
如果函数既需要返回是否成功又要返回结果。一般是把结果用出参返回。

返回结构体也可以。但是很笨的方法.
blackpool 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xingzhe2001 的回复:]
引用 3 楼 blackpool 的回复:
直接返回
vector TestCode::testProgram(const int &test){
...
v = error_vec;
return v;
}

不是个好的办法,是吗?

用参数返回有什么好处吗?我只要返回一个vector的值,不需要多个返回值,是用出参返回还是直接返回好呢?谢谢回帖的朋友!


你不是说必须要返回int值么,那只好用出参返回了。
[/Quote]

那么可以返回vector类型或其他类型吗?如果返回其他类型


vector TestCode::testProgram(const int &test){
...

if (i <= 3)
m[n] = i;
else
{
cerr << "Error of the input!" << endl;
return EXIT_FAILURE;
}

...
}



就不能用return EXIT_FAILURE;了,是不是要把return EXIT_FAILURE;换成exit(1)?谢谢!
liao05050075 2009-08-12
  • 打赏
  • 举报
回复
不要返回,直接exit(1),可以不?
xingzhe2001 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blackpool 的回复:]
直接返回
vector TestCode::testProgram(const int &test){
...
v = error_vec;
return v;
}

不是个好的办法,是吗?

用参数返回有什么好处吗?我只要返回一个vector的值,不需要多个返回值,是用出参返回还是直接返回好呢?谢谢回帖的朋友!
[/Quote]

你不是说必须要返回int值么,那只好用出参返回了。
blackpool 2009-08-12
  • 打赏
  • 举报
回复
直接返回
vector TestCode::testProgram(const int &test){
...
v = error_vec;
return v;
}

不是个好的办法,是吗?

用参数返回有什么好处吗?我只要返回一个vector的值,不需要多个返回值,是用出参返回还是直接返回好呢?谢谢回帖的朋友!
shunning88 2009-08-12
  • 打赏
  • 举报
回复
用出参来返回吧。
xingzhe2001 2009-08-12
  • 打赏
  • 举报
回复
把你想返回的vector什么的用参数的方式返回

int TestCode::testProgram(const int &test, vector& v){
...
v = error_vec;
return EXIT_FAILURE;
}

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧