首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

刚刚接触C++ 遇到点有关问题 请前辈指点下

2012-02-16 
刚刚接触C++ 遇到点问题 请前辈指点下我用vs2005 新建一个win32的项目 代码如下#include stdafx.h#inclu

刚刚接触C++ 遇到点问题 请前辈指点下
我用vs2005 新建一个win32的项目 代码如下


#include "stdafx.h"
#include "iostream"
using namespace std;
#define SAFE_DELETE_ARRAY(P)
{
if(p){
delete []p;
p=NULL;
}
}
using std::cin;
using std::cout;
using std::endl;

int _tmain(int argc, _TCHAR* argv[])
{
int n=0;
char* strIn=NULL;
cout<<"输入多少个字符"<<endl;
cin>>n;
if(strIn==NULL && n>0)
{
strIn=new char[n];
}
cout<<"请输入字符"<<endl;
cin>>strIn;
cout<<"你输入的字符是:"<<endl;
cout<<strIn;
SAFE_DELETE_ARRAY(strIn);
return 0;
}

作用是使用动态内存分配 由程序输入决定数组大小,从键盘输入数据并打印
在调试的时候产生错误 error C2447: '{' : missing function header (old-style formal list?)
应该怎样改 
刚刚学习C++ 如果有什么低级错误 请见谅 谢谢各位

[解决办法]

C/C++ code
//手头没MFC调试器,稍微改了下,eclipse c++下编译通过#include "iostream"using namespace std;#define SAFE_DELETE_ARRAY(p) {\//大写改为小写,且宏定义要用'\'连接    if(p) {\        delete []p;\        p=NULL;\    }\}\using std::cin;using std::cout;using std::endl;int main() {    int n = 0;    char* strIn = NULL;    cout << "输入多少个字符" << endl;    cin >> n;    if (strIn == NULL && n > 0) {        strIn = new char[n];    }    cout << "请输入字符" << endl;    cin >> strIn;    cout << "你输入的字符是:" << endl;    cout << strIn;    SAFE_DELETE_ARRAY(strIn);    return 0;}
[解决办法]
C/C++ code
#include <iostream>using namespace std;using std::cin;int main(){int n=0;char* strIn=NULL;cout<<"输入多少个字符"<<endl;cin>>n;if(strIn==NULL && atoi(n)>0){strIn=new char[n];}cout<<"请输入字符"<<endl;cin>>strIn;cout<<"你输入的字符是:"<<endl;cout<<strIn;delete []strIn;strIn=NULL;return 0;}
[解决办法]
把这里换种方式写(比如简化)或许能解决。int _tmain(int argc, _TCHAR* argv[]);

[解决办法]
以下代码可编译通过 VS2005
C/C++ code
#include "stdafx.h"#include "iostream"using namespace std;#define SAFE_DELETE_ARRAY(p){\    if(p){\        delete []p;\        p=NULL;\    }\}using std::cin;using std::cout;using std::endl;int _tmain(int argc, _TCHAR* argv[]){    int n=0;    char* strIn=NULL;    cout<<"输入多少个字符"<<endl;    cin>>n;    if(strIn==NULL && n>0)    {        strIn=new char[n];    }    cout<<"请输入字符"<<endl;    cin>>strIn;    cout<<"你输入的字符是:"<<endl;    cout<<strIn;    SAFE_DELETE_ARRAY(strIn);    return 0;} 

热点排行