2017年4月13日用VS写C程序遇到的一些问题

在网上找到一篇展示计算机浮点数格式的文章,且有C代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int main() {
    float f;
    double d;
    char bs[65];
    char b[65];
    char s[80];
    unsigned char *p;
    char e[12];
    char *t;
    int ex;

    while (1) {
        printf("Input a float point number:"); fflush(stdout);
        rewind(stdin);
        fgets(s, 80, stdin);
        if (1 == sscanf(s, "%f", &f) && 1 == sscanf(s, "%lf", &d)) break;
    }
    printf("f=%g\n", f);
    p = (unsigned char *)&f;
    printf("hex=%02X %02X %02X %02X\n", p[3], p[2], p[1], p[0]);
    ltoa(*(long *)&f, b, 2);
    sprintf(bs, "%032s", b);
    printf("bin=%s\n", bs);
    printf("bin=%.1s %.8s   %s\n", bs, bs + 1, bs + 9);
    strncpy(e, bs + 1, 8); e[8] = 0;
    ex = strtol(e, &t, 2);
    printf("    %c %-4d-127 1.%s\n", (bs[0] == ‘0‘) ? ‘+‘ : ‘-‘, ex, bs + 9);
    ex -= 127;
    printf("    %c %-8d 1.%s\n", (bs[0] == ‘0‘) ? ‘+‘ : ‘-‘, ex, bs + 9);

    printf("\nd=%lg\n", d);
    p = (unsigned char *)&d;
    printf("hex=%02X %02X %02X %02X %02X %02X %02X %02X\n", p[7], p[6], p[5], p[4], p[3], p[2], p[1], p[0]);
    _i64toa(*(__int64 *)&d, b, 2);
    sprintf(bs, "%064s", b);
    printf("bin=%s\n", bs);
    printf("bin=%.1s %.11s   %s\n", bs, bs + 1, bs + 12);
    strncpy(e, bs + 1, 11); e[11] = 0;
    ex = strtol(e, &t, 2);
    printf("    %c %-6d-1023 1.%s\n", (bs[0] == ‘0‘) ? ‘+‘ : ‘-‘, ex, bs + 12);
    ex -= 1023;
    printf("    %c %-11d 1.%s\n", (bs[0] == ‘0‘) ? ‘+‘ : ‘-‘, ex, bs + 12);

    return 0;
}

遂在自己的64位Windows系统电脑上建立VS工程,粘贴上述代码。编译,出现两个错误。

第一个错误,提示各种函数不安全,要求替换。在网上找到解决方案,并采用更改预处理定义的方法解决了问题,也即:项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加:_CRT_SECURE_NO_DEPRECATE

第二个错误,提示如下:

warning C4996: ‘itoa‘: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details

在网上找到解决方案,首先采用 PROJECT PROPERTIES->LINKER->GENERAL->ENABLE INCREMENTAL LINKKING and set it to NO 的办法,没有解决了问题。然后,接受编译器的提示和建议,用_itoa函数,编译通过。

时间: 2024-10-12 17:20:02

2017年4月13日用VS写C程序遇到的一些问题的相关文章

【猜吧群】2017年4月13日老宋主擂武术专场谜题

[猜吧群]2017年4月13日老宋主擂武术专场谜题 武术种类篇:1.上前水手共二人(2字中国武术)洪拳2.手机丢后,一旦找到,人一定有点高兴(2字中国武术)查拳3.大刀手先走上前,先亮招,壁断开(3字中国武术) 劈挂拳4.此二人身手尚可,也须用半生磨练(3字中国武术)地躺拳5.三人联手把羊撕,酒后一同上北京(2字少林武术)醉拳6.都预留了山涧水(3字武术,鹤顶)通背拳(备泉)7.老婆特爱管闲事,给她一耳光(中国武术二2+3)太极,八卦掌8.兰花夫人拿下水怪(2字外国功夫)泰拳9.子美双手将树撕(

【书阳谜友群】2017年4月13日吴锦平(三江)主擂谜会题

[书阳谜友群]2017年4月13日吴锦平(三江)主擂谜会题 1.端起杯心开怀(陈百强歌曲)不2.先生易志,早晚节不保(音响品牌3字)士必草3.雨中细柳长,庭前槐花开(音响品牌)魔雷4.画中疏柳白花开(电视剧插曲)留香5.“寄言二三子”(京剧演员3字)陈五儿6.“红树晚开花”(三字老歌)夜来香7.“篱边初见一枝新”(中超球员连比赛用语共4字)梅方首秀[面出宋陆游<射的山观梅>]8.“千金争致华轩下”(国名连首都共5字)意大利罗马[面出宋苏轼<申王画马图>]9.“烟横日落惊鸿起”(航空

2017年6月13日

今天下午浪荡了一个多小时什么都没写出来...感觉都是在做无用功..今天的事情更让我明白了基础的重要性...构造函数....不能凭空捏造... 泛型也不会被继承...父类不能向子类强制类型转换...这些都是 我以前都以为可以...可怕-- 在思考 问题是..一定要思考 为什么要这么做..目标是什么..而不是一味的像苍蝇一样,看起来很忙,其实,什么都没有做...加油吧..!

老男孩教育每日一题-2017年3月27日-请写出下面linux命令行快捷键的功能?

Ctrl + a Ctrl + e Ctrl + c Ctrl + d Ctrl + l Ctrl + u Ctrl + k Ctrl + r ctrl + y 解答: 1.1.1 光标移动 Ctrl + a 切换到命令行开始 Ctrl + e 切换到命令行末尾 1.1.2 剪切粘贴 Ctrl + u 清除(剪切)光标之前的内容 Ctrl + k 清除(剪切)光标之后的内容 ctrl + y 粘贴 esc + f 把光标移动到单词的结尾 esc + b 把光标移动到单词的开头 ctrl + b 

2017年8月13日 星期日 --出埃及记 Exodus 28:35

Aaron must wear it when he ministers. The sound of the bells will be heard when he enters the Holy Place before the LORD and when he comes out, so that he will not die. 亚伦供职的时候要穿这袍子.他进圣所到耶和华面前,以及出来的时候,袍上的响声必被听见,使他不至于死亡.

老男孩教育每日一题:2017年3月13日-如何防止Linux命令行或脚本里MySQL登录密码泄露?

不低于3种方法. 明知山有虎偏向虎山行的方案: 1.1.1 可以通过如下环境变量强制Linux不记录敏感历史命令 在命令行执行HISTCONTROL=ignorespace后,再输入带密码的命令的前面加一个空格登录,登录命令不会被记录到历史记录里. [[email protected]~]# HISTCONTROL=ignorespace #<==这里是临时生效,要想永久生效,请放入/etc/bashrc. [[email protected]~]#  mysql -uroot-p'oldboy

2017年6月13日 星期二 --出埃及记 Exodus 26:32

Hang it with gold hooks on four posts of acacia wood overlaid with gold and standing on four silver bases.要把幔子挂在四根包金的皂荚木柱子上,柱子上当有金钩,柱子安在四个带卯的银座上.

python--for循环(2017年7月13日)

on old boy 断点 ---调试---可以查看程序运行的具体操作流程. continue --跳出本次循环,继续到下一次循环. break -- 结束整个循环. ------------------------------------------------------------------------------------------------------------- 由0-4 一直循环print5次: for i in range(0,10): if i <5: print(&qu

老男孩教育每日一题-2017年4月13日-当你删除的多个文件中包含空格或其他特殊字符,请问如何做

当你删除的多个文件中包含空格或其他特殊字符,请问如何做 创建测试环境: mkdir -p  /oldboy/0413 cd   /oldboy/0413 touch oldboy" "{01..10}.log 别上来就rm -f oldboy*.log哟.