c++ - 如何将编码从 C 转换为 C++?

标签 c++ c

无效主函数(){

   char name [50];
   int id;
   int year;
   float salary;
   float bonus;

     printf(" PLEASE ENTER YOUR NAME : ");
     scanf("%c",&name);
     printf("\n");

     printf(" PLEASE ENTER YOUR ID: ");
     scanf("%d",&id);
     printf("\n");

     printf(" ENTER AMOUNT OF YEARS YOU HAVE WORKED: ");
     scanf("%d",&year);
     printf("\n");

    printf(" ENTER YOUR MONTHLY SALARY: ");
    scanf("%f",&salary);
    printf("\n");


    if(year<5)
    bonus=1000;

    else if((year>5)&&(year<10))
    bonus=0.02*(salary)+1000;

    else if (year >10){
    bonus=0.03*(salary)+1000;
    }
    printf("YOUR BONUS IS:",bonus);

    printf("/n");
    printf("/n");
    printf("/n");


    printf("***CSC COMPANY ***\n");
    printf("NAME : ",name);
    printf("ID : ",id);
    printf("YEARS OF SERVICES: ",year);
    printf("MONTHLY SALARY (RM): ",salary);
    printf("BONUS(RM): ",bonus);

    getch();
    }

这是我收到的编码,我确实需要帮助将其转换为 C++。请帮帮我。尽管我知道该程序相对简单且基本,但我不太擅长将程序从 C 转换为 C++。因此,如果有人能帮助我解决这个问题,我将不胜感激。另外,如果有人能告诉我如何获取适用于 Windows 8.1 的任何 C 和 C++ 程序,那就太棒了。

最佳答案

void main(){

void main在任何一种语言中都从未有效,因此立即告诉您这不是最高质量的代码。

使用标准int main() ,或者在 C++11 语法中,如果您对此进行标准化, auto main() -> int .

<小时/>
char name [50];

在 C++ 中使用 std::string对于窄文本字符串变量。

<小时/>
float salary;
float bonus;

默认使用double不是float 。例如 3.14 的类型是 double ,不是float 。使用float是一种节省内存并在某些情况下提高速度的方法,但代价是减少有效数字的数量(并且由于与 double 之间的转换,也可能降低速度)。

float对于使用 C 语言的初学者来说可能很有用,因为 scanf用一个简单的%f需求float 。当使用 C++ 等流线时,C++ 中没有这样的原因。

<小时/>
 printf(" PLEASE ENTER YOUR NAME : ");
 scanf("%c",&name)

scanf这里调用是一个错误。

在这样的 C++ 程序中,只需使用类型更安全的 coutcin iostreams。通过运算符输出<< 。对于没有空格的名称,您可以使用运算符 >>输入,但我建议将其更改为行输入,getline .

<小时/>
getch();

在程序结束时停止并不能解决任何问题:这只是一个问题。所以删除这个。

要查看所有输出,请从命令解释器运行程序,或者例如在 Visual Studio 中通过 Ctrl+F5 运行它,或者在调试器中在 main 的最后一个右大括号上放置一个断点。 .

关于c++ - 如何将编码从 C 转换为 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656885/

相关文章:

c++ - 延迟构造函数调用

c++ - 是否可以强制 boost-build 添加子项目的包含路径到主项目中?

c - 是否有一些基于函数在 C 中返回值的方式而被接受的名称?

c - 使用方括号和符号获取地址

使用待机模式后无法刷新代码。初始化 ST-LINK 设备时出错。原因: (4) No device found on target

c - poll 函数在 POLLOUT 上始终返回零

c++ - 小心 vector::reserve?

c++ - 距离场字体渲染的实现

c - 我收到错误 "Result of comparison against a string literal is unspecified (use strncmp instead)"

c++ - 函数指针数组初始化