ubuntu c++ csv 读取 第三方库
时间: 2023-08-09 10:02:00 浏览: 298
用c++来读取csv文件
在Ubuntu系统中使用C语言读取CSV文件可以借助第三方库来实现。常用的第三方库包括libcsv、libcsc、libcsv2等。
以libcsv为例,首先需要在Ubuntu系统中安装该库。可以通过以下命令实现:
sudo apt-get install libcsv-dev
安装完成后,就可以在C代码中引入libcsv库,并使用其中的函数进行CSV文件的读取。
例如,以下是一个简单的示例代码:
#include <stdio.h>
#include <csv.h>
int main() {
FILE *fp;
struct csv_parser p;
char buf[1024];
size_t bytes_read;
//打开CSV文件
fp = fopen("file.csv", "r");
if (!fp) {
fprintf(stderr, "Failed to open CSV file\n");
return 1;
}
//初始化CSV解析器
csv_init(&p, CSV_APPEND_NULL);
//读取CSV文件内容并打印
while ((bytes_read = fread(buf, 1, sizeof(buf), fp)) > 0) {
if (csv_parse(&p, buf, bytes_read, NULL, NULL) != bytes_read) {
fprintf(stderr, "Error while parsing CSV file: %s\n", csv_strerror(csv_error(&p)));
return 1;
}
//打印每行数据
for (int i = 0; i < csv_get_rows(&p); ++i) {
printf("Row %d:\n", i);
csv_fprint(stdout, &p, i);
printf("\n");
}
}
//释放内存和关闭文件
csv_free(&p);
fclose(fp);
return 0;
}
以上代码使用了libcsv库中的函数,主要包括csv_init()、csv_parse()、csv_strerror()、csv_get_rows()、csv_fprint()等。在首次调用csv_parse()之前,需要先调用csv_init()进行初始化。
代码中会逐行读取CSV文件内容,并打印每行的数据。在使用完libcsv库后,还需要调用csv_free()函数释放内存,同时关闭文件。
希望以上解答对你有帮助!
阅读全文