我是否可以在Linux机器上运行任何C程序,并创建给定维度(行x列)的csv文件并将其存储在硬盘上?
答案 0 :(得分:3)
CSV文件只是一个带有逗号分隔值的纯文本文件,因此您可以在纯文本编辑器中手动创建它。 RFC 4180中有一个规范。
第一行通常用于列名,例如:
Name, Account no, Amount Niels, 1234, $0.99 Thomas, 8888, $10.00 Per, 3454, $9.00 Rasmus, 9412, $99.99
用于创建普通空文件的小型c程序可能如下所示:
/*
* makecsv.c
*/
#include <stdio.h>
int main(int argc, char **argv) {
if( argc != 3) {
printf("Mandatory arguments: <rows> <cols>\n");
return 1;
}
int row, col;
for(row = 0; row < atoi(argv[1]); row++) {
for(col = 0; col < atoi(argv[2]); col++) {
if(col > 0) {
printf(", ");
}
/* Default values are "row x col" */
printf("\"%dx%d\"", row, col);
}
printf("\r\n");
}
return 0;
}
我使用以下命令编译并运行它:
$ gcc -o makecvs makecsv.c $ ./makecvs 3 4 "0x0", "0x1", "0x2", "0x3" "1x0", "1x1", "1x2", "1x3" "2x0", "2x1", "2x2", "2x3" $
要将输出放在“unix way”文件中,请使用以下命令将输出传递给文件:
$ ./makecvs 3 4 > myFile.csv
答案 1 :(得分:1)
如果您正在寻找现有的实用程序,那么您可能在错误的网站上,但是这样的内容会打印出一个带有双引号单元格且没有标题行的空CSV文件:
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols-1; ++j) {
printf("\"\",");
}
printf("\"\"\n");
}
获取一些任意数据并将其转换为CSV文件更难。首先,输入数据格式是什么?其次,正确地逃避数据。
答案 2 :(得分:0)
我做了一个搜索并想出了: http://sourceforge.net/projects/libcsv/
所以这只是csv处理的“库”的一个例子。可能值得一看glib,也许是apr,看看他们是否也有库中的东西。或者您可以按照此处的建议“手动”进行操作。