Lau*_*elS 18 string input objective-c
老实说,我做了a)使用关键词进行搜索,然后b)在询问之前阅读"类似标题的问题".
此外,我试图让这个问题更简洁,但在这种情况下,我很难做到这一点.如果你觉得这个问题过于冗长,我就明白了.只是不要试图回答.
我正在尝试编写非常简单的Objective-C程序,它们反映了我的入门java类中的基本作业.我在夏天完成了一本客观的书,现在我想在objective-c中做很多练习题,同时我还要练习java练习题.我正在避开Objective-c GUI环境,只想专注于使用该语言一段时间.关于如何解决问题,我还有很多东西需要学习.
我正在从我的java作业复制的程序是标准类型.我要求用户通过控制台输入数字和输入字符串.我能够使用扫描f在此处找到的示例从控制台获取数字输入.(我将在下面列出几个代码行).但我不确定如何获取控制台输入并将其存储在字符串(NSString)中.我正在尝试学习使用apple文档并找到一个扫描类型命令的参考,但我无法弄清楚如何使用该命令.似乎很可能是
scanCharactersFromSet:(NSCharacterSet )scanSet intoString:(NSString*)name;
这是我理解和工作的
int age = 0;
NSLog (@"How old are y'all?");
scanf("%d", &age);
NSLog (@"\n Wow, you are %d !", age);
Run Code Online (Sandbox Code Playgroud)
但我不明白如何拾取名为'name'的NSString.我认为我应该把我的'name'作为指针,因为这个类是NSString.
(顺便说一下,我确实尝试使用scanf来拾取字符串,但是编译器不喜欢我尝试将scanf与name一起使用.它说我不应该使用'scanf',因为它期望不同类型的数据.我不确定我在哪里找到数据类型'i'.我正在查看我的文本以寻找不同的想法.我猜测scanf与'scanfloat'有关,它显然处理数字数据,所以这不是很大惊喜)
我意识到'scanf'不是正确的命令(我真的不明白为什么我甚至无法在苹果文档中找到scanf - 也许它是C?)
我猜测scanCharactersFromSet可能是正确的用法,但我只是不明白你是如何弄清楚命令中的位置.我想我倾向于通过实例学习,而我还没有找到一个例子.我想通过阅读文档来弄清楚如何正确学习.但我还没有.
NSString* name ;
scanf("%i", &name);
//scanCharactersFromSet:(NSCharacterSet *)scanSet intoString:(NSString **)name;
Run Code Online (Sandbox Code Playgroud)
...
我的书的目的是让我进入一个gui环境,所以它不涉及输入.
感谢您给我的任何指示.
月桂树
bry*_*mac 15
我建议加强C. Objective-c是一个超过C的薄层,知识会一次又一次地收回成本.
C有多种阅读方式:
http://www.ehow.com/how_2086237_read-string-c.html
例如:
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
char str[50] = {0}; // init all to 0
printf("Enter you Last name: ");
scanf("%s", str); // read and format into the str buffer
printf("Your name is %s\n", str); // print buffer
// you can create an NS foundation NSString object from the str buffer
NSString *lastName = [NSString stringWithUTF8String:str];
// %@ calls description o object - in NSString case, prints the string
NSLog(@"lastName=%@", lastName);
[pool drain];
return 0;
Run Code Online (Sandbox Code Playgroud)
注意:简单的scanf可以缓冲溢出.围绕这个有多种方法.看到:
Hoa*_*inh 15
这是Objective C的样子:
NSString *FNgetInput() {
@autoreleasepool {
return [[[NSString alloc] initWithData:[[NSFileHandle fileHandleWithStandardInput] availableData] encoding:NSUTF8StringEncoding] stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39392 次 |
最近记录: |