gpt4 book ai didi

c - 无法使用 C 在 Excel 文件中正确地从一个位置跳转到另一个位置

转载 作者:行者123 更新时间:2023-11-30 19:42:34 26 4
gpt4 key购买 nike

我正在用 C 编写代码,将数据写入 .csv 文件中。在此代码中,我只是在第一列中写入 A 五次,然后尝试从下一列的开头写入 B 。这是我的代码:-

#include "stdafx.h"
#include<stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
FILE *fp;
fp = fopen("Filename.csv", "w");
if(fp == NULL)
{
printf("Couldn't open file\n");
return 0;
}

for (int j = 0; j<5; j++)
{
fprintf(fp, "A\n");
}

for (int j = 0; j<5; j++)
{
fprintf(fp, ",B\n");
}

return 0;
}

我的输出期望是这样的:-

A B
A B
A B
A B
A B

但是我得到这样的输出:-

A
A
A
A
A
B
B
B
B
B

我的想法是学习将任何column-row跳转到任何column-row.csv文件。所以,请帮助我学习如何跳转到文件中的任意位置。

最佳答案

您可以解析行并将解析的部分和新部分连接起来并再次写入文件。我认为这不是最好的方法,但它确实有效。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
FILE *fp, *fp2;
size_t len = 0;
ssize_t read;
char * line = NULL;

/* Write first part "A" */
fp = fopen("Filename.csv", "w");
if(fp == NULL)
{
printf("Couldn't open file\n");
return 0;
}

/* Write and done */
for (int j = 0; j<5; j++) fprintf(fp, "A\n");
fclose(fp);


/* Open templorary file */
fp = fopen("file.tmp", "a");
if (fp != NULL)
{
/* Open exiting file */
fp2 = fopen("Filename.csv", "r");
if(fp2 != NULL)
{
/* Read from exing file */
while ((read = getline(&line, &len, fp2)) != -1)
{
/* Remove new line character */
sscanf(line, "%512[^\n]\n", line);

/* Join and write to file */
sprintf(line, "%s B", line);
fprintf(fp, "%s\n", line);
}

/* Clean up memory */
fclose(fp2);
if (line) free(line);
}

/* End up */
fclose(fp);
remove("Filename.csv");
rename("file.tmp", "Filename.csv");
}

return 0;
}

关于c - 无法使用 C 在 Excel 文件中正确地从一个位置跳转到另一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31560501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com