我写入文件但更改未保存
I write to a file but the changes doesn't save
我正在编写一个函数来更改 csv 文件中的值,vs 调试器说它工作正常,但在程序退出后,我在文件中看到没有进行任何更改。你知道为什么吗?
int changeValue(int line, int row, char* text, char* fi_le)
/*line and row are the places in which the value is in the file and fi_le is
an address to the file*/
{
int i = 1;
char letter = ' ';
FILE* file = fopen(fi_le, "r+");
if (!(file))//checks that the file exists
{
printf("file r+ open in changeValue -- ERROR!");
return 1;
}
while (i < line)//first line is number 1
{
letter = fgetc(file);
if (letter == '\n')
{
i++;
}
}
i = 0;
while (i < row)//first row is number 0
{
letter = fgetc(file);
if (letter == ',')
{
i++;
}
}
for (i = 0; i < strlen(text) - 1; i++)//writes the new value in the old's value place
{
fputc(text[i], file);
}
fclose(file);
return 0;
}
当文件使用 +
模式打开时,写入后读取,必须先调用文件定位函数。
从文件中读取一些字符后,您需要调用:fseek,
fsetpos 或倒带功能。
要修复代码,请存储您从该文件中读取的总字符数,然后调用函数 fseek,其中第二个参数是计数,第三个参数是 SEEK_SET。
我正在编写一个函数来更改 csv 文件中的值,vs 调试器说它工作正常,但在程序退出后,我在文件中看到没有进行任何更改。你知道为什么吗?
int changeValue(int line, int row, char* text, char* fi_le)
/*line and row are the places in which the value is in the file and fi_le is
an address to the file*/
{
int i = 1;
char letter = ' ';
FILE* file = fopen(fi_le, "r+");
if (!(file))//checks that the file exists
{
printf("file r+ open in changeValue -- ERROR!");
return 1;
}
while (i < line)//first line is number 1
{
letter = fgetc(file);
if (letter == '\n')
{
i++;
}
}
i = 0;
while (i < row)//first row is number 0
{
letter = fgetc(file);
if (letter == ',')
{
i++;
}
}
for (i = 0; i < strlen(text) - 1; i++)//writes the new value in the old's value place
{
fputc(text[i], file);
}
fclose(file);
return 0;
}
当文件使用 +
模式打开时,写入后读取,必须先调用文件定位函数。
从文件中读取一些字符后,您需要调用:fseek, fsetpos 或倒带功能。
要修复代码,请存储您从该文件中读取的总字符数,然后调用函数 fseek,其中第二个参数是计数,第三个参数是 SEEK_SET。