knrt.net
当前位置:首页 >> 为什么我编写的程序在VC++6.0上可以运行,在VS2015... >>

为什么我编写的程序在VC++6.0上可以运行,在VS2015...

1、case与条件之间必须有空格2、最后的printf里面有漏掉逗号3、这不是c++程序,源文件应保存为.c扩展名

你在vs2015同一个工程中,包含了两个文件:赋值运算符.c和源.c,每个文件都有一个main()入口,编译当然会出错."赋值运算符.c"应该是系统自动为你生成的,建议你把"源.c"文件main()函数内的代码复制到"赋值运算符.c"文件的main()函数中,然后从工程中删除“源.c“文件.

应该是VS的类型检测更加严格了, 按照你的思路, m_name是char*,一般来说是可以指向一块可写的缓冲区, 而“小明”这种string是保存在静态存储区,不可写. 你可以强制转换 m_name=(char*)name; 但是这样就不安全了,不如那一天你想给名字 strcpy(m_name,"xiaoming");这样一定会出错.因为m_name实际指向不可写内存区域.正确的设计应该是,先为m_name分配缓冲区,if(m_name==NULL){m_name=new}else if(长度不够){销毁并重新分配足够的缓冲区}然后用strcpy_s之类的函数赋值.这样就可以随意改名字了.

那是因为你的程序在vc++6.0上运行的时候还需要一个推出界面步骤,而编译成可执行文件的时候是脱离编译环境的,他认为结束了,自己就退出界面了.所以,你要在编译环境中给代码增加一条语句getch()就可以了.

吼吼…不兼容了!

虽然我很聪明,但这么说真的难到我了

你改为#include<iostream>using namespace std;这样试试吧!应该是vc2005不支持.h这种写法吧

是控制台程序么?如果是的话那这是正常的.你可以在命令提示符中手动运行程序,不要从VC中运行.

没有包含头文件:#include<stdio.h>还有符号必须是英文的.

编译器之间虽然有一定差异,不过内部函数是相通的,应该没什么问题才是.你可能是操作不当的缘故吧.没用过vs2010,粗陋的谈了下个人看法.希望对你有所帮助.

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com