黑马程序员技术交流社区

标题: 为什么输出不了name [打印本页]

作者: Flying菜鸟    时间: 2014-10-6 12:30
标题: 为什么输出不了name
我用得时Xcode6 方法都是照着做得 但是就是显示不了  也是用得指针
#import<Foundation/Foundation.h>
@interface Book:NSObject//用来声明对象属性(实例变量\成员变量,默认内部初始化为0)
{
    @public
    char *name;
    int page;
}
- (void)look;

@end

@implementation Book//类的实现
- (void)look
{
    NSLog(@"%s,看了%d页",name,page);
   
}

@end
int main(){
    //在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称]
    Book *p=[Book new];
    p->name ="张三";
    p->page=50;
    [p look];
    Book *p2=[Book new];
    p2->name ="李四";
    p2->page=25;
    [p2 look];

    //NSLog(@"书名%s\t页数%d",p->name,p->page);
    return 0;
}
打印的结果就是
2014-10-06 12:30:11.716 a.out[694:507] ,看了50页
2014-10-06 12:30:11.718 a.out[694:507] ,看了25页
搞不懂是哪里出了问题
作者: 魔法少年十三    时间: 2014-10-6 14:08
元素写的不规范啊,而且最好别用char*,用nsstring
作者: Flying菜鸟    时间: 2014-10-6 14:43
魔法少年十三 发表于 2014-10-6 14:08
元素写的不规范啊,而且最好别用char*,用nsstring

可是那个李明杰老师讲的时候是这样的 而且你写的这个元素我还没有接触过耶  
作者: 星河鹭起    时间: 2014-10-6 14:55
试试用NSString,别用char
作者: 陌生爱人    时间: 2014-10-6 16:45
你的程序没有问题  但是有一个语法  MJ老师说过一句话:“OC里建议用 NSString输出字符串 但是如果你执意要用char*name输出的话 也可以 但是里面有中文的话就不行了。”   
不信你把你的程序张三李四 改成Jack 和 Rose 试试 就会出现  Jack,看了50页
作者: 我说你是个逗比    时间: 2014-10-6 17:42
用C的字符串,打印中文可以用printf来输出,一般情况下,NSLog打印出来的是不支持中文的,如果实在想用NSLog来打印中文,可以用UTF8这个方法来转码
作者: 诺微_    时间: 2014-10-6 22:32
写成这样的代码应该是视频还没有看到后面呢,一般定义字符串都用NSString *       不过看着你的技术分很是纠结,嘿嘿
作者: 明天过后1    时间: 2014-10-6 23:25
应该是中文编码格式问题,
char *name = "张三";默认以GBK编码格式存储
NSLog输出默认是以UTF-8g格式输出
你试试把char *name转为UTF-8
NSString *name = [NSString stringWithUTF8String:name];
这样应该没问题
作者: 邢玉池    时间: 2014-10-7 00:30
都好快啊。。我还没看到指针。
作者: ★彬★卍囧神    时间: 2014-10-7 22:38
输出怎么输出 p2->name ="李四";
作者: Flying菜鸟    时间: 2014-10-13 15:58
陌生爱人 发表于 2014-10-6 16:45
你的程序没有问题  但是有一个语法  MJ老师说过一句话:“OC里建议用 NSString输出字符串 但是如果你执意要 ...

确实是 不能输出英文 只能输出中文 这个是一个C语言程序
作者: Flying菜鸟    时间: 2014-10-13 16:05
我说你是个逗比 发表于 2014-10-6 17:42
用C的字符串,打印中文可以用printf来输出,一般情况下,NSLog打印出来的是不支持中文的,如果实在想用NSLo ...

这个貌似比较复杂
作者: Flying菜鸟    时间: 2014-10-13 16:06
诺微_ 发表于 2014-10-6 22:32
写成这样的代码应该是视频还没有看到后面呢,一般定义字符串都用NSString *       不过看着你的技术分很是 ...

哎 也就才看到这  是比较纠结
作者: coyote    时间: 2014-10-14 23:58
学习了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2