如何将编写为c文件的整数数组保存到JSON文本文件数组文件中?任何帮助或链接将不胜感激。
答案 0 :(得分:1)
继续发表评论。声明数组时,例如:
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
该数组存在于内存中,您可以将数组传递给输出函数,该函数将以您指定的格式将数组写入文件。将数组传递给函数时,还需要传递数组的大小。作为参数传递给函数的数组变量将转换为指针。转换后,无法确定函数中原始数组的大小。 (一般意义上说)
你需要做的所有事情就是打开一个文件进行编写,在编写数组元素之前编写所需的任何文本,编写数组元素,然后编写所需的任何结束格式。一个帮助您的简单示例可能类似于以下内容,其中数组值写入命令行提供的文件名(或&#34; jsonout.txt&#34; 默认值):< / p>
#include <stdio.h>
void jsonout (char *fname, int *a, size_t sz);
int main (int argc, char **argv) {
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
size_t size = sizeof array/sizeof *array;
char *file = argc > 1 ? argv[1] : "jsonout.txt";
jsonout (file, array, size);
return 0;
}
/* output function to write "{ "array" : [ v1, v2, .... ] }" to 'fname'
* where v1, v2, ... are the values in the array 'a' of size 'sz'
*/
void jsonout (char *fname, int *a, size_t sz)
{
size_t i;
FILE *fp = fopen (fname, "w+"); /* open file for writing */
if (!fp) { /* validate file is open, or throw error */
fprintf (stderr, "jsonout() error: file open failed '%s'.\n",
fname);
return;
}
fprintf (fp, "{ \"array\" : ["); /* print header to file */
for (i = 0; i < sz; i++) /* print each integer */
if (i == 0)
fprintf (fp, " %d", a[i]);
else
fprintf (fp, ", %d", a[i]);
fprintf (fp, " ] }\n"); /* print closing tag */
fclose (fp);
}
输出文件
$ cat jsonout.txt
{ "array" : [ 1, 2, 3, 4, 5, 6, 7, 8 ] }
如果您需要进一步的帮助,请告诉我。