【发布时间】:2014-02-14 17:47:14
【问题描述】:
在我的程序结束时,我想询问用户是否要退出。
问题:我想创建一个循环,如果用户输入n 或N,它将把用户发送到开始(A 点),或者
如果他输入y 或Y,则到我的程序结束(C 点),如果他输入其他任何内容,则到程序中间(B 点)。
我如何做到这一点?
#include <stdio.h>
int main()
{
char exit=n;
A POINT
// imagine here some stuff
// some more stuff
// just a bit more junk
// some other C statements
B POINT
printf("wana exit? press y/n);
scanf("%c", &exit);
C POINT
return 0;
}
【问题讨论】:
-
这不是您的实际代码,因为它甚至无法编译。此外,
scanf本质上是不安全的。 -
是的,我很抱歉,我不知道我必须输入实际代码。另外为什么每个人都告诉我它不安全?我该怎么办 ?为什么不安全?
-
@BeucaN “他们”指的是
goto吗? -
@Njol 很确定他们指的是 scanf,不知道 goto 函数,对不起:/
-
scanf是不安全的,因为它不执行任何类型的缓冲区大小检查,即缓冲区溢出是一种严重的可能性。要获取单个字符,只需使用getchar。对于字符串使用fgets。
标签: c loops while-loop stdio