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

调用类中函数,用cout输出字符,出现乱码。附有代码,大家来看看啊该如何处理

2012-03-31 
调用类中函数,用cout输出字符,出现乱码。附有代码,大家来看看啊!代码如下:classchar_set{.....intchar_set:

调用类中函数,用cout输出字符,出现乱码。附有代码,大家来看看啊!
代码如下:
class   char_set
{
        .....
        int   char_set::get_char(int   pos,   char*   pchar);
        .....
};

int   char_set::get_char(int   pos,   char*   pchar)
{
*pchar   =   data[pos-1];
return   1;
}

void   main()
{
        char_set*   pset   =   new   char_set( "hello! ");

        char   ch;
        pset-> get_char(3,   &ch);
        cout   < <   ch   < <   endl;

        delete   pset;
}

输出的竟然是个“笑脸”,是哪里有问题啊?

[解决办法]
int char_set::get_char(int pos, char* pchar);
> > > int get_char(int pos, char* pchar);
[解决办法]
贴全代码
[解决办法]
*pchar = data[pos-1];

char_set 的完整定义是如何的?
至少给出 构造函数 ~
[解决办法]
检查 char_set* pset = new char_set( "hello! ");
构造的对象是否正确 ~
[解决办法]
class char_set
{
.....
char data[100];
.....
char_set(char *a)
{
strcpy(data, a)
}
...
};

试试这个.

[解决办法]
#include <stdio.h>
#include <iostream>

using namespace std;


class char_set
{
char data[100];

public:
char_set(const char* str)
{
strcpy(data, str);
}

int char_set::get_char(int pos, char& pchar);
};

int char_set::get_char(int pos, char& pchar)//这里修改了
{
pchar = data[pos-1];
return 1;
}

int main()
{
char_set* pset = new char_set( "hello! ");

char ch;
pset-> get_char(3, ch);

cout < < ch < < endl;

delete pset;

return 0;
}

LZ我修改成这样...你看看
[解决办法]
= =上面修改成那样是贪好看..引用比指针清楚多了,...我LS的那个应该是你程序的问题所在把,猜的..
[解决办法]
构造函数写对了就没问题吧

[解决办法]
笑脸 是1的ascii码
[解决办法]
不知道什么问题,这里贴上我的代码

#include <stdio.h>
#include <iostream>

using namespace std;


class char_set
{
char *data;

public:
char_set(const char* str)
{
int len = strlen(str);
data = new char[len+1];
strcpy(data,str);
}

int char_set::get_char(int pos, char* pchar);

~char_set()
{
delete[] data;
}
};

int char_set::get_char(int pos, char* pchar)//这里修改了
{
*pchar = data[pos-1];
return 1;


}

int main()
{
char_set* pset = new char_set( "hello! ");

char ch;
pset-> get_char(3, &ch);

cout < < ch < < endl;

delete pset;

return 0;
}

热点排行
Bad Request.