黑马程序员技术交流社区

标题: 举手,我有问题? [打印本页]

作者: 道本真    时间: 2014-7-22 20:53
标题: 举手,我有问题?
在C语言里我们提示一个用户输入一个数据 ,并赋值给某个变量用scanf("%d", &a), 那再OC里要提示用户输入某个数据,有什么方法,特别是:如果输入的时一个字符串那该如何做,要取出字符串的某个数又是如何表达的,学得尚浅,望指点!
作者: 为梦想挺身而出    时间: 2014-7-22 21: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);
复制代码

作者: fantacyleo    时间: 2014-7-22 21:41
本帖最后由 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];
复制代码

作者: 心之信子    时间: 2014-7-22 22:29
oc可以兼容c语言,你可以用scanf函数代替来执行输入指令。
作者: 可心来了    时间: 2014-7-22 22:32
大家好像都挺厉害的样子
作者: 爱情路13号    时间: 2014-7-23 00:15
我也想到过这个问题。当时也纠结了半天,后来人家说ios开发基本不需要,就放弃了
作者: الغيوم_ا    时间: 2014-7-23 12:20
oc不是完全兼容c语言么,直接用就好了。
作者: 道本真    时间: 2014-7-23 12:27
为梦想挺身而出 发表于 2014-7-22 21:10
同求,我之前遇到过就直接用C语言,然后再转为OC的,坐等大神!

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

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

。。。那只要是跟开发无关的,你就都不学了吗:L
作者: Moebius    时间: 2014-7-23 13:41
视频里面也没讲,我是直接用的scanf语句。




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