当我在case 1
(换句话说,在一个while
循环后)呼叫case 2
时,下面的代码会产生两个笑脸。然而printSentence();
的工作原理应该是在case 1
。C控制台应用程序在循环后给出笑脸
#include <stdio.h>
#include <string.h>
char *enterSentence();
void printSentence(char *);
char *sentence;
int willContinue = 1;
main() {
while (willContinue) {
int a;
scanf("%d", &a);
switch (a) {
case 1:
getchar();
sentence = enterSentence();
printSentence(sentence);
break;
case 2:
getchar();
printSentence(sentence);
break;
case 3:
willContinue = 0; //exit
break;
}
}
}
char *enterSentence() {
char temp[999];
gets(temp);
return temp;
}
void printSentence(char *asd) {
puts(asd);
}
.
. //more code
.
我不知道什么是这里的问题,感谢您的帮助..
'句子'在每个循环后似乎都不会被清除。 – Blender 2011-12-23 21:16:47
哦!不要使用'gets()'。它不能安全使用,并已从最新的C标准(C11)中删除。 – pmg 2011-12-23 21:30:08