zoukankan      html  css  js  c++  java
  • C++控制台闪回;编译器警告C4305,C4244

    这是我以前解决问题时,收集在印象笔记里的内容,为了以后整理方便,把它转移至这里。以下内容,均来自微软官方网站相关。
     
     
    问题:C++控制台闪回
     
     
    解决办法:
    1,在程序结尾添加system("pause");[若有return语句则写在return之前]
    解析:system(const char *command);
    system函数返回给定的命令字符串command进行系统调用。如果命令执行正确通常返回零值。如果command为NULL,system()将尝试是否有可用的命令解释器。如果有返回非零值,否则返回零值。
    system是执行dos下面的一些命令,在DOS下能执行的指令,用system都可以执行。把dos的命令直接放到它的参数里面就可以执行,用户随意敲一个键后程序继续运行。
    pause 它会提示“请按任意键继续……”,pause命令没有任何的参数,它的命令就是它的本身,当pause命令运行后,会中断执行语句。这个中断不是立即停止,只是暂停,按下任意键之后就会继续执行下面的语句。而且可以重复用很多次,在一个批处理命令中,可以尝试使用多个pause命令。
    2,在程序结尾添加get char();[若有return语句则写在return之前]
    解析:get char()函数从STDIN(标准输入)获取并返回下一个字符,如果到达文件尾返回EOF。这种方法是直接让程序运行get char函数,让程序在接受一个字符后再退出,相当于自己按下任意键后程序才退出。
     
     
    编译器警告(等级1)C4305
     
     
    “context”:从"type1"到"type2"的截断
    备注:如果将值转换为较小类型的初始化或构造函数参数,则会发出此警告,导致信息丢失。
    示例
    此示例显示了你可能会看到此警告的两种方式:
    // C4305.cpp
    // Compile by using: cl /EHsc /W4 C4305.cpp
     
    struct item
    {
        item(float) {}
    };
     
    int main()
    {
        float f = 2.71828;          // C4305 'initializing'
        item i(3.14159);            // C4305 'argument'
        return static_cast<int>(f);
    }
     
     
    若要解决此问题,请使用正确类型的值进行初始化,或使用显式强制转换为正确的类型。 例如,使用浮点文本(如 2.71828 f),而不是双精度(浮点文本的默认类型)来初始化浮点变量,或传递给采用float参数的构造函数。
     
     
    编译器警告(等级2) C4244
     
     
    "argument":从 "type1" 转换到 "type2",可能丢失数据
    浮点类型已转换为整数类型。 可能发生了数据丢失。
    如果收到 C4244,则应将程序更改为使用兼容类型,或向代码添加一些逻辑,以确保可能值的范围将始终与你使用的类型兼容。
    C4244 也可以在第3级和第4级激发;有关详细信息,请参阅编译器警告(等级3和4) C4244 。
    示例
    下面的示例生成 C4244:
    C++
    // C4244_level2.cpp
    // compile with: /W2
     
    int f(int x){ return 0; }
    int main() {
       double x = 10.1;
       int i = 10;
       return (f(x));   // C4244
       // try the following line instead
       // return (f(i));
    }
     
  • 相关阅读:
    数据库版本管理工具flyway
    spring webapp的配置文件放置在项目外的方法
    logback
    linux as4 bind9 设置进程中的一些小效果
    设置/勾销Debian的屏保
    Linux内存:内存管理的天禀
    用YUM晋级CentOS体系中PHP和MySQL
    solaris的故事
    Solaris 的防火墙ipfilter设置
    mysql安置设置文件的成绩
  • 原文地址:https://www.cnblogs.com/yidajiabei/p/11920353.html
Copyright © 2011-2022 走看看