出于某种原因,我的C程序在输出“输入字母(D / E / F)后立即关闭:”
我希望能够在letters []数组中存储3个字符,以便稍后打印出来。
我使用Visual Studio 2017,程序没有错误。它似乎只是在printf("Enter a letter (D/E/F): ");
之后跳过所有内容。
我认为问题与scanf_s有关,但我不确切知道问题是什么或如何修复它。这是我的计划:
#include <stdio.h>
int main(void)
{
char letters[3];
char ch;
printf("Enter a letter (A/B/C): ");
scanf_s(" %c", &ch);
letters[0] = ch;
printf("Enter a letter (D/E/F): ");
scanf_s(" %c", &ch);
letters[1] = ch;
printf("Enter a letter (G/H/I): ");
scanf_s(" %c", &ch);
letters[2] = ch;
printf("You entered %c, %c, and %c.", letters[0], letters[1], letters[2]);
getchar(); getchar(); // PAUSE
return 0;
}
请帮忙。
答案 0 :(得分:0)
将scanf_s(" %c", &ch);
更改为scanf_s(" %c", &ch, 1);
,现在该程序正常运作!
感谢天气风向标,一些程序员,Kal Karaman,再次风向标,以及这个网页:http://faculty.edcc.edu/paul.bladek/CS131/scanf_s.htm!