C语言 可以在文件开头输入字符吗?

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:09:01
在文件e:/abc.txt的开头输入1 2 3 4怎么做啊?
文件中本身就有内容的,而且内容较多(~200k)
就是想在其开头添加内容。
可以解决的话,请写出代码,谢谢。
我试过用rewind(fp),好像行不通。

谢谢你,伊·梵,我运行了,但显示not enough memory。
跟你说一下我的问题吧,
在abc.txt中全是浮点型数据,300行×200列的,我想把它重新输出致abc2.txt,将abc.txt的最后一行变为第1行,倒数第二行变为第2行,以此类推,直至第一行变为最后一行。有劳你了。

加了些分,要不有点不厚道了 呵呵

使用链表,避开文件插入操作。

注意编译的时候,要选择‘特大内存模式’,防止分配内存失败
-------------------------------------------------------------------
#include<stdio.h>
#include<malloc.h>

/*定义链表节点*/
typedef struct list
{
char *lines;
struct list *next;
}LIST;

int getline(FILE *fp, char *buf)
{
char ch;
int i=0;
while((ch=fgetc(fp)) != '\n' && ch != EOF) buf[i++]=ch;
if(ch == EOF && i==0) if(i==0) return -1;
buf[i] = '\0';
return i;
}

void main()
{
char line[1024];/*用来缓存一行的数据,根据实际数据调整到合适大小*/
LIST *p=NULL,*head=NULL;
int len;
FILE *fp1,*fp2;

/*打开文件abc.txt*/
if((fp1=fopen("e:\\abc.txt","r"))==NULL)/*注意这里的文件打开模式,文件必须存在*/
{
printf("Can not open file 'e:\abc.txt'\n");
return;
}

/*打开文件abc2.txt*/
if((fp2=fopen(&