C中函数的最终程序返回
我想用错误消息结束一个程序,并从函数内部返回值100:C中函数的最终程序返回,c,function,error-handling,return-value,void,C,Function,Error Handling,Return Value,Void,我想用错误消息结束一个程序,并从函数内部返回值100: void readSize(int *rows, int *cols) { while(!(scanf("%d %d", rows, cols))) { fputs("Error: Incorrect input!\n", stderr); return 100; } } 如果你知道我的意思的话,我想让它返回100,就像它是从main()返回的
void readSize(int *rows, int *cols) {
while(!(scanf("%d %d", rows, cols))) {
fputs("Error: Incorrect input!\n", stderr);
return 100;
}
}
如果你知道我的意思的话,我想让它返回100,就像它是从main()返回的一样。我尝试了goto,但它不能在函数之间跳转。有什么想法吗?来自Steve Summit的评论。只需使用退出(100) 您正在查找的函数是
exit()
。作为参数,传递要返回的返回代码。有用于此的标准宏,如EXIT\u SUCCESS
或EXIT\u FAILURE
,但您可以选择int
。在函数main
中使用时,exit(x)
相当于return x
您可以在此处阅读有关退出功能的信息:
另一个细节是
而(!(scanf(“%d%d”,rows,cols))
是错误的。如果成功分配了行
和列
,scanf
将返回2。当然,如果您所写的内容返回2,它将被视为成功,但如果它返回1,它也将被视为失败。相反,做(<代码)>()(SCANF(“%d %d”,行,COLS)=2)<或代码>,或者更好的是,如果它符合您的需要,考虑“<代码> fgs<代码> >和<代码> sSCANF< /代码>所描述的您想要<代码>退出(100)。@目的是显示,我想做什么。另外,您的代码< SCANF调用有一些问题。我想你想要的是如果,而不是而,条件应该是!=2
,而不是(实际上)
==0
。(我的观点是,如果scanf
返回1,或者-1,或者实际上不是2,那就是失败。)@SteveSummit谢谢!我会把它放在那里,以防以后有人用类似的措辞搜索它。:)@问题和答案都很简单,但我认为你应该写下来作为答案。