|
刚入门的菜鸟,在练习跳转时出现问题:
错误:0x031CCCE0 处有未经处理的异常(在 goto和函数.exe 中): 0x80000026: 一个长跳转已经运行。。
代码如下:- #define _CRT_SECURE_NO_WARNINGS//scanf
- #include <stdio.h>
- #include <stdlib.h>
- #include <setjmp.h>
- jmp_buf eee;
- float a(void);
- int main()
- {
- printf("请输入");
- int ab;
- scanf("%d", &ab);
- if (ab == 0)
- {
- longjmp(eee, 0);
- }
- else
- printf("输入合法");
- system("pause");
- return 0;
- }
- float a(void)
- {
- setjmp(eee);
- printf("输入不合法");
- return 0.0f;
- }
复制代码
输入0后报错0x031CCCE0 处有未经处理的异常(在 goto和函数.exe 中): 0x80000026: 一个长跳转已经运行。。
求助!help!谢谢了
- #define _CRT_SECURE_NO_WARNINGS//scanf
- #include <stdio.h>
- #include <stdlib.h>
- #include <setjmp.h>
- void a(void);
- int main()
- {
- flag2: //跳转标志2
- printf("请输入");
- int ab = 0;
- scanf("%d", &ab);
- if (ab == 0)
- {
- goto flag1; //跳转
- }
- else
- printf("输入合法");
- system("pause");
- return 0;
- {
- flag1: //跳转标志1
- a();
- goto flag2; //跳转
- }
- }
- void a(void)
- {
- printf("输入不合法\n");
- }
复制代码
setjmp longjmp不存在从前面往后跳的情况: https://www.runoob.com/cprogramm ... brary-setjmp-h.html
如果真的要强跳建议使用 goto 语句
无论如何跳转语句和跳转标志都要在同一个代码段里,放在其他函数里面是不行的
|
上一篇: 字符串排列问题下一篇: VS2010 VC++输入小写代码大小写匹配
|