【发布时间】:2012-06-13 16:36:15
【问题描述】:
我正在制作一个典型的猜谜游戏来学习 C 语言,这是我人生中的第一次,我发现了一个错误。如果你输入一个整数,你会得到Guess a higher value 或Guess a lower value,这很好用。但是如果你输入一个字符串,它会变得疯狂并打印出很多字符串,上面写着Guess a higher value。
我现在要做的是检查用户是否输入了一个字符串,它会告诉用户类似
Enter a number, not text的内容。我该怎么做?-
您认为我可以在这段代码中改进什么吗?
#include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int secret, answer; srand((unsigned)time(NULL)); secret = rand() % 10 + 1; do { printf ("Guess a number between 1 and 10"); scanf ("%d",&answer); if (secret<answer) puts ("Guess a higher value"); else if (secret>answer) puts ("Guess a lower value"); } while (secret!=answer); puts ("Congratz!"); return 0; }
【问题讨论】:
-
相应地更改了标签(C 不是 C++)。
-
哦,是吗?嗯……这个例子是不是很简单? C 和 C++ 不是很像吗?这个例子在两种语言中并没有什么不同。
-
@user1431627:这可能令人惊讶,因为大多数 C 可以编译为 C++ 并且工作方式类似(尽管 C++ 不是严格的超集)。但是您在这里没有使用 C++ 的任何特性,纯 C 代码。 (我敢说,纯 C89 代码)
-
谢谢!那我就用C编译吧。如果我使用 C++,
printf()将是cout << <<?你会推荐我用什么?