标题:下面的代码在VC++6.0可以正常运行输出,但是放在VS2013(scanf()在VS2013里 ...
只看楼主
郑风十一
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2017-3-13
结帖率:100%
 问题点数:0 回复次数:5 
下面的代码在VC++6.0可以正常运行输出,但是放在VS2013(scanf()在VS2013里已经改为scanf_s())就不行,不懂是为什么
#include <stdio.h>
int main()
{
    char letter;
    printf("Enter an upper case letter:");
    scanf("%c",&letter);
    if ((letter >= 'A') && (letter <= 'Z'))
    {
        letter = letter + 'a' - 'A';//等价于l=l+'a'-'A'
        printf("You entered an uppercase %c.\n", letter);
    }
    else
        printf("You did not erter an uppercase letter.\n");
    return 0;
}
2017-04-07 23:15
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用郑风十一在2017-4-7 23:15:29的发言:

但是放在VS2013(scanf()在VS2013里已经改为scanf_s())就不行

我看不懂你这个“就不行” 是神马意思

代码在2010下测试正常

DO IT YOURSELF !
2017-04-08 11:09
郑风十一
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2017-3-13
得分:0 
回复 2楼 wp231957
就是scanf在VS2013里运行需要加上#define _CRT_SECURE_NO_WARNINGS,改成scanf_s就不需要了。在2013里输入任何字符它输出的都是You did not erter an uppercase letter.
2017-04-08 11:35
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
估计是你的函数使用错了

DO IT YOURSELF !
2017-04-08 11:38
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
可以百度一下_s函数的各个参数的含义

DO IT YOURSELF !
2017-04-08 11:39
郑风十一
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2017-3-13
得分:0 
回复 5楼 wp231957
好,谢谢
2017-04-08 12:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475880-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.945931 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved