鱼C论坛

 找回密码
 立即注册
查看: 2524|回复: 7

关于scanf_s 的一个问题,求高手帮忙,拜谢

[复制链接]
发表于 2014-4-21 00:08:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人刚开始学习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");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-21 08:38:44 | 显示全部楼层
没有高手帮忙啊,感谢了。
程序可直接复制,调试运行可发现问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-21 10:48:16 | 显示全部楼层
_s是是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-21 10:50:13 | 显示全部楼层
  改成这样试试看      scanf_s("%c", &c);        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-21 12:39:18 | 显示全部楼层
#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");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-21 22:02:12 | 显示全部楼层
用fflush(stdio);清空缓冲看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-21 22:24:06 | 显示全部楼层
坐等答案,万分感谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 23:23:10 | 显示全部楼层
谢谢各位老师热心帮忙,已解决!
参考小甲鱼C语言教程 第30篇的数组 课程!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 10:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表