以下是test.csv
的内容,
95,47
460,215
字符串
我写了一个C程序把它读入一个长的长数组。
#include <stdio.h>
#define DIM 2
void read(char path[], long long (*B)[DIM]);
int main(int argc, char *argv[]) {
long long B[DIM][DIM];
read("test.csv", B);
for (int i = 0; i < 2; i++)
for (int j = 0; j < DIM; j++)
printf("%lld\n", B[i][j]);
return 0;
}
void read(char path[], long long (*B)[DIM]) {
int i, j;
int c, sign = 1;
long long number = 0;
FILE *fp = fopen(path, "r");
if (fp) {
while ((c = getc(fp)))
if (c == '-') {
sign = -1;
} else if (c == ',') {
B[i][j++] = sign * number;
sign = 1;
number = 0;
} else if (c == '\n') {
B[i++][j] = sign * number;
j = 0;
sign = 1;
number = 0;
} else if (c == EOF) {
B[i][j] = sign * number;
break;
} else if ('0' >= c || c <= '9') {
number = (number * 10) + (c - '0');
}
fclose(fp);
} else {
printf("File %s not found.\n", path);
}
}
型
我的C有点生疏了,这让我出现了一个分段错误。我不明白为什么?有趣的是,如果我在main中注解2D循环,那么程序运行良好。
1条答案
按热度按时间dfddblmv1#
在使用变量之前总是初始化它们:
字符串