我有一个这样的文件:
1.0 1.0
2.0 2.0
-3.0 2.0
每条线是一个点的坐标。
我不知道如何编写代码来做以下事情:从文件中读取这些坐标,将它们转换为double并将它们作为NSPoint存储在数组中。
BTW,我试着写objective - c++,但似乎ifstream不工作,这是XCode的一个bug。
这样做:
注意:你不能在NSArray中存储NSPoint,因为所有的集合类都需要obj-c对象来存储,而NSPoint是一个结构体。所以你需要把它转换成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);
}