任何人都可以解释如何在目标C中进行黑客等级测试.特别是"从STDIN读取输入.打印输出到STDOUT"部分
如何在objective-c中读取输入和输出?
到目前为止,我得到的输入就像
NSFileHandle *fileHandler = [NSFileHandle fileHandleWithStandardInput];
NSData *inputData = [fileHandler availableData];
NSString *inputString = [[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
但要打印输出,以下内容不会在HackerRank控制台上打印任何内容(但在Xcode控制台上可以正常工作)
NSFileHandle* fileHandler=[NSFileHandle fileHandleWithStandardOutput];
[fileHandler writeData: [formattedString dataUsingEncoding: NSNEXTSTEPStringEncoding]];
Run Code Online (Sandbox Code Playgroud)
Meh*_*mar 11
"从STDIN读取输入.将输出打印到STDOUT"的最简单方法是使用scanf和printf.
这是一个示例模板,可以帮助您入门:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int count;
scanf("%d", &count);
NSMutableArray *inputIntegers = [NSMutableArray new];
for (int i=0; i<count; i++) {
int inputElement;
scanf("%d", &inputElement);
[inputIntegers addObject:[NSNumber numberWithInt:inputElement]];
}
//to print a specific element:
printf("printing element 0: %d", (int)[inputIntegers[0] integerValue]);
[pool drain];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在你开始这个旅程之前,先做一些事情:
代替
- (NSInteger)sumOfNumbers : (NSInteger)a and:(NSInteger)b {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
使用
int sumOfNumbers(int a, int b){
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
快乐的编程.