我在用C语言训练文件处理,我试图用
fseek()
在写作和阅读时
fread()
和
fwrite()
void main()
{
FILE *file;
char answer;
char text[7] = "text 1\n";
char text2[7] = "text 2\n";
file = fopen("fseek.txt", "w"); //creating 'source' file
fwrite(text, sizeof(char), sizeof(text), file);
fwrite(text, sizeof(char), sizeof(text), file);
fwrite(text, sizeof(char), sizeof(text), file);
fclose(file);
scanf("%c", &answer);
switch(answer)
{
case 'a':
//attempt to change single line with append mode
file = fopen("fseek.txt", "a");
fseek(file, 7, SEEK_SET); //7 characters offset is the second line of the file
fwrite(text2, sizeof(char), sizeof(text), file);
fclose(file);
break;
case 'w':
//attempt to change single line with write mode
file = fopen("fseek.txt", "w");
fseek(file, 7, SEEK_SET); //7 characters offset is the second line of the file
fwrite(text2, sizeof(char), sizeof(text), file);
fclose(file);
break;
}
}
但在append模式下,它只在文件末尾写入变量,即使
fseek()
函数预先和写入模式只是擦除文件并重写它。那么如何使用
还是类似的?