ChinaUnix.net
相关文章推荐:

fseek 偏移量大于文件长度

用fread从头至尾读取二进制文件,读一段存一段,我的问题是每次读完一段后需要fseek么? 是不是只要在fopen之后fseek一次就ok了,读取的内容是连续的,存是选择性的,即是不连续的

by lydut - C/C++ - 2008-06-17 00:33:03 阅读(3704) 回复(3)

相关讨论

首先是要经常打开关闭文件同一文件进行读写, 当我用a为参数时,打开文件到了末尾,然后我用再用fseek定位到文件首,想遍历一下所有记录,看看新添加的记录存在不,但并没有遍历。 所有的记录都被添加到了末尾; 当用w为参数时,每次都打开一个新的文件,原来添的不存存了,每次就是一条记录。 现在只能用r+为参数,在写记录之前先要touch一下这个文件,然后才能写。这个到满足条件了! 为什么在用a参数时fseek定位会没有生效呢?

by zw2002 - C/C++ - 2006-12-07 14:05:14 阅读(6323) 回复(6)

[code] char *tmpString = "hello world"; int len = strlen(tmpString); fwrite(tmpString, len, 1, file); //以a+的方式循环写5次 然后开始循环读,文件指针会有偏差,不知道是哪里的问题,求助 char tmp[100]; fileoffset =0; fseek(file, fileoffset , SEEK_SET) fread(tmp, len, 1, file); fileoffset += len; //循环读,前几次能对,然后中间某一次文件指针就出偏差了,我以为是fileoffset的问题,把最后一行改成file...

by bw_0927 - C/C++ - 2011-08-30 17:23:56 阅读(3057) 回复(2)

因为文件头的内容需要在最后写入,我的代码流程如下: 1.FILE * pf = fopen( filename, "w+" ); 打开一个文件 2.fwrite 向该文件写入一些内容 3.fseek( pFile,0,SEEK_SET); 移动到文件头 4.fwrite 写入新内容 ,这时写入的新内容会将第二步中写入的内容覆盖掉。 我试了把读写方式改为"a+",但是那样fseek就不管用了,请问有没有什么方法不覆盖掉原来写的内容?

by qfmeal - C/C++ - 2011-12-07 10:53:24 阅读(10670) 回复(8)

如题。才发现的。不知道是函数库设计不完善还是我哪儿出错了。如下面一段代码。 ------------------下面代码是死循环 int totalFound=0,length=1000; FILE *fpCtl; while((0 == feof(fpCtl)) && (totalFound < length)) { printf("read seq:%d\n",seq); fseek(fpCtl,0L,SEEK_END); // fread(&seq,sizeof(int),1,fpCtl); } ------------------

by xb_parasite - C/C++ - 2006-02-21 16:17:42 阅读(7280) 回复(7)

fseek函数中偏移量的参数是long int类型的,我机器上long int是32位的,那么对于超过2GB文件文件该怎么办呢?

by ahocat - C/C++ - 2009-07-08 09:15:42 阅读(6753) 回复(12)

各位大虾,在linux下有没有支持64位fseek,fread等文件操作的C库函数 read, seek 等也可以

by hust_tulip - C/C++ - 2005-03-02 18:04:02 阅读(2735) 回复(0)

写DES加密器的问题,想把密文写入文件,用fseek移动到文件最后写,可总是不能成功。 程序如下: [code]switch(nflag) { case 1: { printf("输入要加密的文字。"); scanf("%s", scr); len = strlen(scr); i = 0; FILE * fp; fp = fopen("mw.txt", "wb"); while(len > 0) { char sencry[8]; if(len < 8) { strncpy(sencry , &scr, strlen(scr)); } else { ...

by guhan010 - C/C++ - 2007-01-23 14:03:09 阅读(2356) 回复(6)

小妹初学Linux下C编程,对fseek的返回值疑惑不解,在此求教。 书上说fseek成功则返回0,不成功(例如试图移动超过文件范围)则返回-1。但我做练习时发现对一个30字节的文件,用 fseek(fp, 50, SEEK_SET) 还是返回0。 这是怎么回事?

by 秦时明月 - C/C++ - 2006-12-11 10:00:24 阅读(1488) 回复(2)

小弟在linux下写的一段代码,运行结果有些不明白: 当使用lseek时,从文件中读的数据是0,但是文件的内容却是6235; 使用fseek时,从文件中读的的数据是正常的6235. 使用这两个函数读的内容为什么不一样?谢谢。

by disheng727 - C/C++ - 2008-09-12 16:36:23 阅读(7616) 回复(8)

小菜目前在使用feek的时候碰到个问题,特向高人求助!!! 需求先写文件体,然后统计一些字段,再写文件头。。 FILE * fp fopen (FileName,"w+"); fprintf( fp ,"%s%s..............................); /*文件体 */ fseek ( fp,0,SEEK_SET ); fprintf(fp ,"%.............................."); /*文件头 */ 问题出来了,发现文件体的第一行被文件头覆盖了。。。。头痛。。 恳请高手指点。。。。。

by xofirebird - C/C++ - 2008-11-13 19:30:55 阅读(1924) 回复(3)