我如何在c中的文件上写文本?
How can i write text on a file in c?
我正在用 c 编写一个简单的文本编辑器,我定义了一个名为 node 的结构并创建了一个名为 textbuffer 的链表。我正在尝试为文本编辑器创建一个插入功能。这是到目前为止的代码:
#include <stdio.h>
#include <string.h>
struct node
{
char statement[40];
int next;
};
struct node textbuffer[25];
int free_head;
int inuse_head;
void insert(int line, char* stat)
{
FILE *file;
file=fopen("texteditor.txt","w");
if(file!=NULL)
{
int i;
int k;
strcpy(textbuffer[line].statement,stat);
textbuffer[line].next=line+1;
fprintf(file,textbuffer[line].statement);
for(i=0;i<=25;i++)
{
if(textbuffer[i].statement==NULL)
{
free_head=i;
break;
}
}
for(k=0;k<=25;k++)
{
if(textbuffer[k].statement!=NULL)
{
inuse_head=k;
break;
}
}
}
else
{
printf("File couldn't found.");
}
fclose(file);
}
int main()
{
insert(1,"Hello World");
return 0;
}
问题是当 texteditor.txt 文件为空时,当我 运行 代码在文件中写入“Hello World”时,这没问题,但是当我 运行 它用于其次,我希望它写出“HelloWorldHelloWorld”,但它不会 anything.it 仍然保持为“Hello World”。我该如何解决这个问题?
您可以简单地以追加模式打开文件:
file=fopen("texteditor.txt","a");
我正在用 c 编写一个简单的文本编辑器,我定义了一个名为 node 的结构并创建了一个名为 textbuffer 的链表。我正在尝试为文本编辑器创建一个插入功能。这是到目前为止的代码:
#include <stdio.h>
#include <string.h>
struct node
{
char statement[40];
int next;
};
struct node textbuffer[25];
int free_head;
int inuse_head;
void insert(int line, char* stat)
{
FILE *file;
file=fopen("texteditor.txt","w");
if(file!=NULL)
{
int i;
int k;
strcpy(textbuffer[line].statement,stat);
textbuffer[line].next=line+1;
fprintf(file,textbuffer[line].statement);
for(i=0;i<=25;i++)
{
if(textbuffer[i].statement==NULL)
{
free_head=i;
break;
}
}
for(k=0;k<=25;k++)
{
if(textbuffer[k].statement!=NULL)
{
inuse_head=k;
break;
}
}
}
else
{
printf("File couldn't found.");
}
fclose(file);
}
int main()
{
insert(1,"Hello World");
return 0;
}
问题是当 texteditor.txt 文件为空时,当我 运行 代码在文件中写入“Hello World”时,这没问题,但是当我 运行 它用于其次,我希望它写出“HelloWorldHelloWorld”,但它不会 anything.it 仍然保持为“Hello World”。我该如何解决这个问题?
您可以简单地以追加模式打开文件:
file=fopen("texteditor.txt","a");