我有一个这样的文件:
1.0 1.0
2.0 2.0
-3.0 2.0
每一行是一个点的坐标。
我不知道如何编写代码来执行以下操作:从文件中读取这些坐标,将它们转换为double并将它们作为NSPoint存储在数组中。
BTW,我试着编写Objective-C ++,但似乎ifstream不起作用,这是XCode的一个bug。答案 0 :(得分:0)
这样做:
注意:您不能在NSArray中存储NSPoint,因为所有集合类都需要obj-c objets来存储,NSPoint是struct。所以你需要将它转换为NSValue。
NSString *yourPath=[@"~/Desktop/myFile.txt" stringByExpandingTildeInPath];
NSFileHandle *inFile = [NSFileHandle fileHandleForReadingAtPath:yourPath];
NSData *myData=[inFile readDataToEndOfFile];
NSString *myText=[[NSString alloc]initWithData:myData encoding:NSASCIIStringEncoding];
NSArray *values = [myText componentsSeparatedByString:@"\n"];
NSMutableArray *points=[NSMutableArray new];
for (NSString *string in values) {
NSArray *lines=[string componentsSeparatedByString:@" "];
NSPoint point=NSMakePoint([lines[0]floatValue], [lines[1]floatValue]);
points[points.count]=[NSValue valueWithPoint:point];
}
for (NSValue *value in points) {
NSLog(@"->%@",value);
}