能力值:
(RANK:410 )
|
-
-
2 楼
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *f;
if((f = fopen("Super.txt","r+")) == NULL)
{
printf("big error\n");
getchar();
exit(1);
}
char ch;
if(fseek(f,1,1) == EOF) /* 改成if(fseek(f,0,SEEK_CUR) == EOF) 将指针偏移改为0开始 */
{
printf("seek error\n");
}
for(int i=0;i<3;i++)
{
printf("%c\n",fgetc(f)); /* 这里不能同时使用fgetc和fputc,因为fgetc和fputc每操作一次都会将文件指针++ */
fputc('k',f);
printf("%c\n",fgetc(f));
}
fclose(f);
system("pause");
return 0;
}
/* 所以,将你上面的源码改成如下 */
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *f;
if((f = fopen("Super.txt","r+")) == NULL)
{
printf("big error\n");
getchar();
exit(1);
}
char ch;
if(fseek(f,0,SEEK_CUR) == EOF)
{
printf("seek error\n");
}
for(int i=0;i<=3;i++)
{
fputc('k',f); /* 连续写入4个'k' */
}
if(fseek(f,0,SEEK_SET) == EOF) /* 重新设定文件指针 */
{
printf("seek error\n");
}
for(i=0; i<=3;i++) /* 将写入的内容一个一个打印出来 */
{
printf("%c\n",fgetc(f));
}
fclose(f);
system("pause");
return 0;
}
|
能力值:
(RANK:170 )
|
-
-
3 楼
fseek函数用来移动文件内部位置指针,其调用形式为: fseek(文件指针,位移量,起始点); 其中:“文件指针”指向被移动的文件。 “位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB 时不会出错。当用常量表示位移量时,要求加后缀“L”。“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。
其表示方法如表
起始点 表示符号 数字表示
──────────────────────────
文件首 SEEK―SET 0
当前位置 SEEK―CUR 1
文件末尾 SEEK―END 2
例如:
fseek(fp,100L,0);其意义是把位置指针移到离文件首100个字节处。还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。文件的随机读写在移动位置指针之后, 即可用前面介绍的任一种读写函数进行读写。由于一般是读写一个数据据块,因此常用fread和fwrite函数。
-------------------------------------------------------
fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为: 字符变量=fgetc(文件指针); 例如:ch=fgetc(fp);其意义是从打开的文件fp中读取一个字符并送入ch中。
对于fgetc函数的使用有以下几点说明:
1. 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。
2. 读取字符的结果也可以不向字符变量赋值,例如:fgetc(fp);但是读出的字符不能保存。
3. 在文件内部有一个位置指针。用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc 函数后, 该位置指针将向后移动一个字节。 因此可连续多次使用fgetc函数,读取多个字符。 应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。
-------------------------------------------------------
fputc函数的功能是把一个字符写入指定的文件中,函数调用的 形式为: fputc(字符量,文件指针); 其中,待写入的字符量可以是字符常量或变量,例如:fputc('a',fp);其意义是把字符a写入fp所指向的文件中。
对于fputc函数的使用也要说明几点:
1. 被写入的文件可以用、写、读写,追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符从文件首开始。如需保留原有文件内容,希望写入的字符以文件末开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。
2. 每写入一个字符,文件内部位置指针向后移动一个字节。
3. fputc函数有一个返回值,如写入成功则返回写入的字符, 否则返回一个EOF。可用此来判断写入是否成功。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
能力值:
(RANK:10 )
|
-
-
4 楼
非常感谢 小虾版主以及Aker的帮助~~~~~~~
顺便问一下,你们知道哪里有C函数的详细用法讲解吗?
Google出来的结果都不是很满意,大都大概说一下参数的含义,很模糊。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
MSDN里应该有吧?
|
能力值:
( LV9,RANK:170 )
|
-
-
6 楼
我最近得了一点C语言函数参考,主要是讲些函数的,楼主想要的话可以共享!
因为不能上传附件,所以只好用邮箱!
|
|
|