使用C语言中的fopen()函数打开CSV文件。例如,如果CSV文件名为"example.csv",则可以使用以下代码打开文件:
FILE *fp = fopen("example.csv", "r")
读取CSV文件中的数据
使用fgets()函数从CSV文件中读取数据行。由于CSV文件中每行都以逗号分隔不同的值,可以使用strtok()函数将每行数据拆分为单独的值。例如,以下代码可以读取CSV文件中的一行数据并将其拆分为逗号分隔的值:
char buffer[1024];
fgets(buffer, 1024, fp);
char *value = strtok(buffer, ",");
while (value != NULL) {
value = strtok(NULL, ",");
将CSV数据存储到数组中
可以使用数组来存储CSV文件中的数据。首先需要确定数组的大小,可以通过统计CSV文件中的行数和每行的值数来计算出数组的大小。然后,可以使用动态分配内存的方法为数组分配空间。例如,以下代码可以创建一个二维数组并动态分配内存以存储CSV文件中的数据:
// 统计CSV文件中的行数和每行的值数
int rows = 0
int columns = 0
char buffer[1024]
while (fgets(buffer, 1024, fp)) {
rows++
char *value = strtok(buffer, ",")
while (value != NULL) {
columns++
value = strtok(NULL, ",")
// 动态分配内存以存储CSV文件中的数据
double **data = (double **)malloc(rows * sizeof(double *))
for (int i = 0
data[i] = (double *)malloc(columns * sizeof(double))
接下来,可以使用类似于步骤2的代码将CSV数据存储到数组中:
rewind(fp)
int row_index = 0
while (fgets(buffer, 1024, fp)) {
int column_index = 0
char *value = strtok(buffer, ",")
while (value != NULL) {
data[row_index][column_index] = atof(value)
column_index++
value = strtok(NULL, ",")
row_index++
最后,要记得在程序结束时关闭文件并释放数组的内存:
fclose(fp)
for (int i = 0
free(data[i])
free(data)
初学者_Study
Android
- 39
-
ShaderJoy
Unreal Engine