这本来应该很简单,但我在读取连续的键盘输入时遇到了麻烦。
这是代码:
#include <string.h>
#include <stdio.h>
int main()
{
char string[200];
char character;
printf ("write something: ");
scanf ("%s", string);
printf ("%s", string);
printf ("\nwrite a character: ");
scanf ("%c", &character);
printf ("\nCharacter %c Correspondent number: %d\n", character, character);
return 0;
}
正在发生什么
当我输入一个字符串(例如:computer),程序会读取换行符 ('\n'
) 并将其放入 character
中。下面是显示的样式:
write something: computer
computer
Character:
Correspondent number: 10
此外,该程序无法处理超过一个单词的字符串。我该如何解决这些问题?
scanf
是不安全的,应该使用fgets
。 - John