关于scanf_s 的一个问题,求高手帮忙,拜谢
本人刚开始学习c 语言,作业完成了闰年的检验。编好后自己想做个年份输入循环,可是在确认(y/n)时,scanf_s语句总是不能执行,
后来改成getche()函数,问题解决,可是就是不明白为啥scanf_s不能执行。
请高手指点啊。系统visual studio 2012
现在学习真的不好选系统,windows 也升级了,编程软件也不好配套了,实在不想回到
原来的xp 环境下了,见笑。
/************************************
*给一个年份,看是不是闰年
***********************************/
#include <stdio.h>
#include <stdafx.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
int a,b;
char c='y';//要给字符变量c赋初值
while (c == 'y'||c=='Y')
{
printf("please input year:\n");
scanf_s("%d", &a);
if (a % 4 == 0)//先判断能不能被4整除
{
if (a % 100 != 0)
{
printf("it is a 小闰年.\n");//再看能不能被100整除
}
else
{
if (a % 400 == 0)//能被100整除的,必须能被400整除的才是闰年
{
printf("it is a 大闰年.\n");
}
}
}
else
{
printf("it isn't a 闰年.\n");
}
printf("是否还要判断(y/n):%c",c);
//c = _getche();
//printf("\n");
scanf_s("%c", &c,1); //不知道为什么这个语句给c赋值就不行?
printf("输出c的值:%c", c);
}
system("pause");
}
没有高手帮忙啊,感谢了。
程序可直接复制,调试运行可发现问题。 _s是是什么意思 改成这样试试看 scanf_s("%c", &c);
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
int a,b;
char c='y';//要给字符变量c赋初值
while (c == 'y'||c=='Y')
{
printf("please input year:\n");
scanf_s("%d", &a);
if (a % 4 == 0)//先判断能不能被4整除
{
if (a % 100 != 0)
{
printf("it is a 小闰年.\n");//再看能不能被100整除
}
else
{
if (a % 400 == 0)//能被100整除的,必须能被400整除的才是闰年
{
printf("it is a 大闰年.\n");
}
}
}
else
{
printf("it isn't a 闰年.\n");
}
printf("是否还要判断(y/n)?");
fflush(stdin);//清空缓冲区
scanf("%c", &c); //用scanf
}
system("pause");
} 用fflush(stdio);清空缓冲看看。 坐等答案,万分感谢啊 谢谢各位老师热心帮忙,已解决!
参考小甲鱼C语言教程 第30篇的数组 课程!
页:
[1]