在 C 中的 csv 文件中继续写我离开的地方
Contunue writing where I left off in a csv file in C
我需要在不同的代码部分编写 CSV 列和行
但我无法继续我离开的地方
我可以这样做吗?我怎样才能跳过文件的结尾?
我尝试了 fseek()
但没有成功。
我正在编写我正在处理的类似代码
#include <stdlib.h>
#include <stdio.h>
//function declaration
int fonit(int count);
int main(int argc, char const *argv[])
{
int a=100;
int b=a/10;
for (int a = 0; a < 10; a++)
{
// row number
FILE *file;
file = fopen("fant.csv", "w+");
// fseek( file,10, SEEK_END);
fprintf(file, "%d", a);
fprintf(file, ",");
fclose(file);
for (int j = 0; j < 10; j++){
fonit(j);
}
FILE *file;
file = fopen("ant.csv", "w+");
// fseek( file,10, SEEK_END);
fprintf(file, "%d", b);
fprintf(file, ",");
fprintf(file,"\n");
fclose(file);
}
return 0;
}
int fonit(int count){
int k=0;
for (int i = 0; i < count; i++)
{
for (int j = 0; j < 100; j++)
{
k=j%2;
}
FILE *file;
file = fopen("ant.csv", "w+");
// fseek( file, -10,SEEK_END);
fprintf(file, "%d", k);
fprintf(file, ",");
fclose(file);
}
return 0;
}
我完全接受不同的命令或 C++:)
当您想附加到文件而不是覆盖它时(“从我离开的地方继续”),您必须以附加模式而不是写入模式打开文件。 Append 模式追加到文件,而 write 模式覆盖它。因此,解决方法是将您对 fopen
的调用中的 w+
更改为 a+
。我建议你在打开模式下省略加号,因为首先,你根本不从文件中读取(所以不需要它),其次,你不应该使用相同的文件对象来读取和 写作,因为这会导致意想不到的行为,因为它很容易让您对当前在文件中的位置感到困惑。相反,如果您必须进行读取 和 写入,请先以读取模式打开文件,进行读取,然后关闭它。然后,再次以写模式打开它,写你的东西,关闭它。
我需要在不同的代码部分编写 CSV 列和行 但我无法继续我离开的地方
我可以这样做吗?我怎样才能跳过文件的结尾?
我尝试了 fseek()
但没有成功。
我正在编写我正在处理的类似代码
#include <stdlib.h>
#include <stdio.h>
//function declaration
int fonit(int count);
int main(int argc, char const *argv[])
{
int a=100;
int b=a/10;
for (int a = 0; a < 10; a++)
{
// row number
FILE *file;
file = fopen("fant.csv", "w+");
// fseek( file,10, SEEK_END);
fprintf(file, "%d", a);
fprintf(file, ",");
fclose(file);
for (int j = 0; j < 10; j++){
fonit(j);
}
FILE *file;
file = fopen("ant.csv", "w+");
// fseek( file,10, SEEK_END);
fprintf(file, "%d", b);
fprintf(file, ",");
fprintf(file,"\n");
fclose(file);
}
return 0;
}
int fonit(int count){
int k=0;
for (int i = 0; i < count; i++)
{
for (int j = 0; j < 100; j++)
{
k=j%2;
}
FILE *file;
file = fopen("ant.csv", "w+");
// fseek( file, -10,SEEK_END);
fprintf(file, "%d", k);
fprintf(file, ",");
fclose(file);
}
return 0;
}
我完全接受不同的命令或 C++:)
当您想附加到文件而不是覆盖它时(“从我离开的地方继续”),您必须以附加模式而不是写入模式打开文件。 Append 模式追加到文件,而 write 模式覆盖它。因此,解决方法是将您对 fopen
的调用中的 w+
更改为 a+
。我建议你在打开模式下省略加号,因为首先,你根本不从文件中读取(所以不需要它),其次,你不应该使用相同的文件对象来读取和 写作,因为这会导致意想不到的行为,因为它很容易让您对当前在文件中的位置感到困惑。相反,如果您必须进行读取 和 写入,请先以读取模式打开文件,进行读取,然后关闭它。然后,再次以写模式打开它,写你的东西,关闭它。