C语言文件操作
有一个文件,在任意的ab之间完成换行的操作,如何完成? 例如文件名是a.txt,内容为: afadfadabkakjabafaeuabdferhv afertfadabkertakjabafartyeu 如何操作使之成为 afadfada bkakja bafaeua bdferhv afertfada bkertakja bafartyeu 并替换原来的文件? 1楼: 读到缓存中,怎么读啊?难道直接用fp=fopen(e:a.txt)就行了?那么fp指向什么地方呢?好像不是这个文件的首部啊?因为我试着输出printf('%d',*fp)的时候,即使fp在一直增加,也输出为零,有时还出现内存泄漏的问题。 2楼: 你的程序我在看,有的函数不太懂,如果可以的话就给分
更新时间:2019-05-06 15:16
最满意答案
//---------------------------------------------------------------------------
#include
#define FILENAME "c:\in.txt"/*源文件名*/
int main(VOID)
{
FILE *fp,*tmp;
char a,b;
tmp=tmpfile();/*创建一个
临时文件*/
fp=fopen(FILENAME,"r");
while (!feof(fp))
{
a=getc(fp);
fwrite(&a,sizeof(char),1,tmp);
if (a=='a') {
b=getc(fp);
if (a=='a'&&b=='b') {
a='n';
fwrite(&a,sizeof(char),1,tmp);
}
fwrite(&b,sizeof(char),1,tmp);
}
}
rewind(tmp);
freopen(FILENAME,"w",fp);
while (!feof(tmp)){
fread(&a,sizeof(char),1,tmp);
if (a==-1) break;
fputc(a,fp);
}
fclose(fp);
fclose(tmp);
return 0;
}
//---------------------------------------------------------------------------
2008-09-11 回答
其他回答
不要你分,只想教你一种学习方法,别人教你的不一定是你想要的,自己掌握才是真正的。
首先:
file *m_file=fopen("文件名","打开方式") 参考.htm
接着:
char buff[n]="n是你想存取的大小!选择文件打开方式会决定是重写还是接着写等";
fwrite( buff, 1, n, m_file);参考.htm
最后:
fclose(m_file);
在c语言下还有其它常用的文件操作函数:
fread,fflush,ftell,fseek
这些在用法和说明在百科里都有。
2008-09-11 回答
相关问答
你每次都通过lseek把指针设置到文件中间,所以ret=read(...)总不会是null。
用数组实现的栈 //-* Header File- #ifndef __STACK_H__ #define __STACK_H__ struct StackRecord; typedef struct StackRecord *Stack; int
照你那样说的插入是不太可能的,从底层看,文件一般都是通过重写插入删除数据的。 如果你要插入的话,就是把插入点之后的数据全都复制下来,然后写上要插入的东西,然后再把复制的数据全部粘上。 删除也是一样,把你要删除的数据用后面的数据覆盖上。 无论什么编辑器都是以这样的原理实现的。可能它们用了这样或那样的算法优化这一过程,但这一过程是不会变的(不只编辑器,OS也会对这一过程进行优化)。 所以,如果在文件的第一个字符插入或删除,那么效率是最低的。因为要写入最多的字符。下面是个实例。 比如文件中有以下字符 a
...
楼主的程序如下: #include #include int main(void) { FILE *p; p = (FILE *)malloc(sizeof(FILE)); if((fopen(","w"))==NULL) /* 这样并没有把档案控制指针赋值给 p */ { printf("open p error!"); exit(0); } fprintf(p,"%s","Hello world!");
...
/* * 别把文件都放在桌面,因为各用户系统的桌面路径是不同的 * 放在和程序同一目录下吧 */ #include int main() { int a[5], b[4], c[9] = {0}; int i, j, k = 5; int flag; FILE *fp; if ((fp = fopen(", "r")) == NULL) { printf(" fails, n"); return -1; } for (i = 0; i
...
//prog.c源码清单********************************************************************************************************* #include #include #define BOOL int #define TRUE 1 #define FALSE 0 int main(int argc,char *argv[]) { char buf[1024]
...
1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制文件 13.2文件指针 定义文件类型指针变量的一般形式: FILE *指针变量名; 例如: FILE *fp1,*fp2; 13.3打开文件 在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为: fopen(文件名,文件使用方式); 此函数返回一个指向FILE类型的指针.如: FILE *fp; fp=fopen("file_1","r"); 如果调用成功,fp就指向file_1,
...
文件很有用,而且非常重要! (注:文件是一个大的概念(它不只是.txt或.bat文件,要知道你编写后的可执行程序本身(.exe)也是文件),所有的存储在外部介质上的数据都是文件!) 比如说,编写一个电子词典(简单查询程序),你不可能将成千上万的单词 都以代码的方式写到程序里吧!但你可以从网上下载英语单词的txt 文件,将其放到指定的位置,利用文件,在程序运行时以一定的格式 将其读入程序。简单 实用 方便! (我就以这种方式编写了 英汉互译 的电子词典) 程序没有记录功能,关闭后会丢失你输入的信息,
...
#include #include #include typedef struct stu { int no; char name[30]; struct stu *next; }node; node *create(node *h) { node *head=NULL,*pre,*cur; int n; printf("请输入数据总数:"); scanf("%d",&n); for(int i=0;i<=n;i++) { pre=(node
...
//--------------------------------------------------------------------------- #include #define FILENAME "c:\in.txt"/*源文件名*/ int main(VOID) { FILE *fp,*tmp; char a,b; tmp=tmpfile();/*创建一个 临时文件*/ fp=fopen(FILENAME,"r"); while (!feof(fp)) { a=getc(fp);
...
本文发布于:2024-02-01 18:07:53,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170678230038503.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |