我一直在尝试将包含格式化矩阵(9x9)的txt文件读入int数组。用户使用NSOpenPanel选择txt文件。
示例txt文件:
2 7 9 1 6 2 1 1 1
9 1 3 3 4 0 6 8 5
5 3 2 9 3 8 6 7 0
6 0 9 2 5 6 4 8 0
3 2 0 4 0 5 0 6 0
4 0 5 4 0 3 9 0 0
6 4 1 3 2 5 7 2 0
6 5 7 2 1 3 0 9 3
1 0 2 7 5 1 0 0 0
我是mac编程的新手,所以任何帮助都会非常感激。
答案 0 :(得分:0)
您可以使用Objectice-C执行此操作 类喜欢NSString和NSArray 阅读完整的文件只是 NSString * filesContent = [[NSString alloc] initWithContentsOfFile:@“file.txt”];
然后你可以将这个数组分开,例如在空白处 NSArray rows = [filesContent componentsSeparatedByString:@“\ r \ n”]; 然后你可以在空白处拆分行。
或者你用老式的C级方式做到了。 用fopen打开文件 逐行读取文件 拆分线路,例如与sscanf 并填充数组 int arr [9] [[9];
伪代码(未经过测试,只是为了给你一个想法)
char buf [2048];
char *pc;
int arr[9][[9];
int i_rval;
int row[9];
File *fin = fopen("file_with_9_x_9_matrix.txt");
/* error handling */
int i = 0;
while ((pc = fgets(buf, sizeof(buf), fin)) != NULL) {
row = arr[i];
i_rval = sscanf("%d %d %d %d %d....", &row[0], &row[1]);
/* error handling */
i++;
}
或者你可以混合使用Objectice-C和C.