c语言移动文件函数 c语言数据移动

c语言:若想把文件位置指针从当前位置后移动若干字节,可调用( )函数来实现

fseek()

在兴海等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、网站设计 网站设计制作按需设计,公司网站建设,企业网站建设,品牌网站制作,全网整合营销推广,成都外贸网站建设公司,兴海网站建设费用合理。

fseek

函数名: fseek

功 能: 重定位流上的文件指针

用 法: int fseek(FILE *stream, long offset, int fromwhere);

程序例:

#include stdio.h

long filesize(FILE *stream);

int main(void)

{

FILE *stream;

stream = fopen("MYFILE.TXT", "w+");

fprintf(stream, "This is a test");

printf("Filesize of MYFILE.TXT is %ld bytes\n", filesize(stream));

fclose(stream);

return 0;

}

long filesize(FILE *stream)

{

long curpos, length;

curpos = ftell(stream);

fseek(stream, 0L, SEEK_END);

length = ftell(stream);

fseek(stream, curpos, SEEK_SET);

return length;

}

编辑词条

C语言中 rename 的用法

rename函数功能是给一个文件重命名,用该函数可以实现文件移动功能,把一个文件的完整路径的盘符改一下就实现了这个文件的移动。具体参见下面的程序示例说明。

头文件:在Visual

C++6.0中用stdio.h或者io.h

法:

int

rename(char

*oldname,

char

*newname);

程序例:

#include

int

main(void)

{

char

oldname[80],

newname[80];

/*

prompt

for

file

to

rename

and

new

name

*/

printf("File

to

rename:

");

gets(oldname);

printf("New

name:

");

gets(newname);

/*

Rename

the

file

*/

if

(rename(oldname,

newname)

==

0)

printf("Renamed

%s

to

%s.\n",

oldname,

newname);

else

perror("rename");

return

0;

}

执行过程:

File

to

rename:

D:\\in.dat

New

name:

G:\\in.dat

Renamed

D:\\in.dat

to

G:\\in.dat.

这样就实现了in.dat从D盘移动到G盘。

在unix或linux系统中:

#include

int

rename(const

char

*oldname,

const

char

*newname);

函数说明

(1)

如果oldname为一个文件而不是目录,那么为该文件更名。在这种情况下,如果newname作为一个目录已存在,则它不能重命名一个目录。如果newname已存在,而且不是一个目录,则先将其删除然后将oldname更名为newname。对oldname所在目录以及newname所在的目录,调用进程必须具有写许可权,因为将更改这两个目录。

(2)

如若oldname为一个目录,那么为该目录更名。如果newname已存在,则它必须是一个目录,而且该目录应当是空目录(空目录指的是该目录中只有.

和..

项)。如果newname存在(而且是一个空目录),则先将其删除,然后将oldname更名为newname。另外,当为一个目录更名时,newname不能包含oldname作为其路径前缀。例如,不能将/usr更名为/usr/foo/testdir,因为老名字(

/usr/foo)是新名字的路径前缀,因而不能将其删除。

(3)

作为一个特例,如果oldname和newname引用同一文件,则函数不做任何更改而成功返回。

返回值

执行成功则返回0,失败返回-1,错误原因存于errno

范例

#include

int

main(int

argc,char

**argv)

{

if(argc

3)

{

printf("Usage:

%s

old_name

new_name\n",argv[0]);

return

-1;

}

printf("%s

=

%s\n",

argv[1],

argv[2]);

if(rename(argv[1],

argv[2])

)

printf("error!\n");

else

printf("ok!\n");

return

0;

}

c语言中的rewind()是什么意思

rewind是C 程序中的库函数。

功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头。

注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。

rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET); 用 法: void rewind(FILE *stream);

“函数”是从英文function翻译过来的,其实,function在英文中的意思即是“函数”,也是“功能”。从本质意义上来说,函数就是用来完成一定功能的。

这样对函数的概念就很好理解了,所谓函数名就是给该功能起个名字,如果该功能是用来实现数学运算的,就是数学函数。

扩展资料

C语言没有提供获取文件大小的函数,要想实现该功能,必须自己编写函数。

1、fseek()函数

int fseek (FILE *filepointer,long offset, int whence)

作用就是将文件指针所指向的文件的读写位置指针移动到特定的位置,这里offset代表了要移动到距离,whence代表了移动到初始地点。offset的值假如是正数就会往 whence右边移动,假如是负数就会往whence左边移动。

fseek(fp, 8, SEEK_SET); //代表开头位置往右边移动8个字节。

2、rewind()函数

将读写位置指针重置到文件开头。void rewind(FILE *filepointer);

3、ftell()函数

这个函数可以用来获取文件内部指针(位置指针)距离文件开头的字节数。

它的原型是:long int ftell ( FILE * fp );

参考资料来源:百度百科-rewind

c语言操作文本的基本使用方法

c语言操作文本应该怎么使用,这对于很多新手来说,是很难的一件事情,下面我为大家带来了关于c语言操作文本的基本使用方法,欢迎大家阅读!

c语言操作文本的基本使用方法

1.字符读写:

fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:

字符变量=fgetc(文件指针);

fputc函数的功能是把一个字符写入指定的文件中,函数调用的形式为:

fputc(字符量,文件指针);

2.字符串读写

读字符串函数fgets

函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:

fgets(字符数组名,n,文件指针);

写字符串函数fputs

fputs函数的功能是向指定的文件写入一个字符串,其调用形式为:

fputs(字符串,文件指针);

3.数据块读写

读数据块函数调用的一般形式为:

fread(buffer,size,count,fp);

写数据块函数调用的`一般形式为:

fwrite(buffer,size,count,fp);

4.格式化读写

fscanf函数,fprintf函数与前面使用的scanf和printf函数的功能相似,都是格式化读写函数。两者的区别在于fscanf函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。

这两个函数的调用格式为:

fscanf(文件指针,格式字符串,输入表列);

fprintf(文件指针,格式字符串,输出表列);

文件定位

移动文件内部位置指针的函数主要有两个,即rewind函数和fseek函数。

rewind函数前面已多次使用过,其调用形式为:

rewind(文件指针);

它的功能是把文件内部的位置指针移到文件首。

下面主要介绍fseek函数。fseek函数用来移动文件内部位置指针,其调用形式为:

fseek(文件指针,位移量,起始点);

其中:

“文件指针”指向被移动的文件。

“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB时不会出错。当用常量表示位移量时,要求加后缀“L”。

“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。其表示方法如下表。

c语言操作文本的基本使用方法1

起始点表示符号数字表示

文件首SEEK_SET0

当前位置SEEK_CUR1

文件末尾SEEK_END2

例如:

fseek(fp,100L,0);

其意义是把位置指针移到离文件首100个字节处。

还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。

c语言中常用的文件检测函数有以下几个。

文件结束检测函数feof函数

调用格式:

feof(文件指针);

功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。

读写文件出错检测函数

ferror函数调用格式:

ferror(文件指针);

功能:检查文件在用各种输入输出函数进行读写时是否出错。如ferror返回值为0表示未出错,否则表示有错。

文件出错标志和文件结束标志置0函数

clearerr函数调用格式:

clearerr(文件指针);

功能:本函数用于清除出错标志和文件结束标志,使它们为0值。

怎么用C语言复制文件或者移动文件,不要用system的命令。Linux命令cp cat都不行,我要

要求 c:\source.txt文件必须存在,可以自己建立一个这样的文本文件,并输入一些数据,以便测试。

复制文件:源文件c:\source.txt 复制到c:\dex.txt

#includestdio.h

void main()

{

FILE *fp1,*fp2;

char str1;

fp2=fopen("c:\\des.txt","w");

if((fp1=fopen("C:\\source.txt","r"))==NULL)

{

printf("file cannot be opened\n");

return;

}

while((str1=fgetc(fp1))!=EOF)

fputc(str1,fp2);

fclose(fp1);

fclose(fp2);

}

希望能够帮到你。

移动文件:源文件c:\source.txt 移动到c:\dex.txt

#includestdio.h

void main()

{

FILE *fp1,*fp2;

char str1;

fp2=fopen("c:\\des.txt","w");

if((fp1=fopen("C:\\source.txt","r"))==NULL)

{

printf("file cannot be opened\n");

return;

}

while((str1=fgetc(fp1))!=EOF)

fputc(str1,fp2);

fclose(fp1);

fclose(fp2);

remove("c:\\source.txt");

}


分享标题:c语言移动文件函数 c语言数据移动
文章路径:http://pwwzsj.com/article/hhgids.html