A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 道本真 中级黑马   /  2014-7-22 20:53  /  2067 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在C语言里我们提示一个用户输入一个数据 ,并赋值给某个变量用scanf("%d", &a), 那再OC里要提示用户输入某个数据,有什么方法,特别是:如果输入的时一个字符串那该如何做,要取出字符串的某个数又是如何表达的,学得尚浅,望指点!

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

10 个回复

倒序浏览
同求,我之前遇到过就直接用C语言,然后再转为OC的,坐等大神!
  1. char s[100];
  2.    
  3.     scanf("%s", s);
  4.    
  5.     // 转为OC
  6.     NSString *str = [NSString stringWithFormat:@"%s", s];

  7.     char c = [str characterAtIndex:0]; // 取出索引的字符
  8.    
  9.     NSLog(@"%c, %@", c, str);
复制代码

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
本帖最后由 fantacyleo 于 2014-7-22 21:43 编辑

我觉得没有特别需要,scanf就好了,以后做iOS开发也不会从控制台去接收键盘输入。OC原生的读取键盘输入的方式还是挺麻烦的,要用NSFileHandle获取标准输入流,读取键盘输入后封装为NSData,最后转为NSString:
  1. NSFileHandle * in= [NSFileHandle fileHandleWithStandardInput];
  2. NSData *inData = [in availableData];
  3. NSString * inStr =[NSString stringWithData:inData encoding:NSUTF8StringEncoding];
复制代码


可以举一反三的是,如果不喜欢NSLog每次都打出的那一堆前缀,可以直接往标准输出流(控制台)中写入数据:
  1. NSFileHandle * out= [NSFileHandle fileHandleWithStandardOut];
  2. NSString *outStr =@"Hello world";
  3. NSData *outData = [outStr dataUsingEncoding:NSUTF8StringEncoding];
  4. [out writeData:outData];
复制代码

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
oc可以兼容c语言,你可以用scanf函数代替来执行输入指令。
回复 使用道具 举报
大家好像都挺厉害的样子
回复 使用道具 举报
我也想到过这个问题。当时也纠结了半天,后来人家说ios开发基本不需要,就放弃了
回复 使用道具 举报
oc不是完全兼容c语言么,直接用就好了。
回复 使用道具 举报
为梦想挺身而出 发表于 2014-7-22 21:10
同求,我之前遇到过就直接用C语言,然后再转为OC的,坐等大神!

似乎只有这种方法比较可行了把
回复 使用道具 举报
fantacyleo 发表于 2014-7-22 21:41
我觉得没有特别需要,scanf就好了,以后做iOS开发也不会从控制台去接收键盘输入。OC原生的读取键盘输入的方 ...

大神啊有木有~~~~
回复 使用道具 举报
爱情路13号 发表于 2014-7-23 00:15
我也想到过这个问题。当时也纠结了半天,后来人家说ios开发基本不需要,就放弃了 ...

。。。那只要是跟开发无关的,你就都不学了吗:L
回复 使用道具 举报
视频里面也没讲,我是直接用的scanf语句。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马