首先是要经常打开关闭文件同一文件进行读写, 当我用a为参数时,打开文件到了末尾,然后我用再用fseek定位到文件首,想遍历一下所有记录,看看新添加的记录存在不,但并没有遍历。 所有的记录都被添加到了末尾; 当用w为参数时,每次都打开一个新的文件,原来添的不存存了,每次就是一条记录。 现在只能用r+为参数,在写记录之前先要touch一下这个文件,然后才能写。这个到满足条件了! 为什么在用a参数时fseek定位会没有生效呢?
[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...
因为文件头的内容需要在最后写入,我的代码流程如下: 1.FILE * pf = fopen( filename, "w+" ); 打开一个文件 2.fwrite 向该文件写入一些内容 3.fseek( pFile,0,SEEK_SET); 移动到文件头 4.fwrite 写入新内容 ,这时写入的新内容会将第二步中写入的内容覆盖掉。 我试了把读写方式改为"a+",但是那样fseek就不管用了,请问有没有什么方法不覆盖掉原来写的内容?
如题。才发现的。不知道是函数库设计不完善还是我哪儿出错了。如下面一段代码。 ------------------下面代码是死循环 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); } ------------------
写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
{
...
小妹初学Linux下C编程,对fseek的返回值疑惑不解,在此求教。 书上说fseek成功则返回0,不成功(例如试图移动超过文件范围)则返回-1。但我做练习时发现对一个30字节的文件,用 fseek(fp, 50, SEEK_SET) 还是返回0。 这是怎么回事?
小弟在linux下写的一段代码,运行结果有些不明白: 当使用lseek时,从文件中读的数据是0,但是文件的内容却是6235; 使用fseek时,从文件中读的的数据是正常的6235. 使用这两个函数读的内容为什么不一样?谢谢。
小菜目前在使用feek的时候碰到个问题,特向高人求助!!! 需求先写文件体,然后统计一些字段,再写文件头。。 FILE * fp fopen (FileName,"w+"); fprintf( fp ,"%s%s..............................); /*文件体 */ fseek ( fp,0,SEEK_SET ); fprintf(fp ,"%.............................."); /*文件头 */ 问题出来了,发现文件体的第一行被文件头覆盖了。。。。头痛。。 恳请高手指点。。。。。