当前位置:首页 » 编程语言 » c语言怎么写文件名用参数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么写文件名用参数

发布时间: 2022-09-04 06:42:55

c语言如何写文件如何将文件名用参数代替

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
char username[]="abc";//应该是字符串
//char *filename = "c:\\data\\a.xml";//参数文件保存路径,根据需要修改
char filename[100];//定义字符数组,数组可修改不同字符串。
FILE *file;//指向文件的指针

memset(filename,'\0',100);//初始化数组
printf("input your filename.\n");
gets(filename);
while(*filename!=NULL)//当连续输入2个回车,代表不再输入。
{
//用于打开文件
if ((file = fopen(filename, "w+" )) == NULL)
{
//lr_output_message("Unable to create %s", filename);
printf("unable to open.\n ");
exit(0);
}

fwrite(username,sizeof(username),1,file);
fclose(file);//关闭文件

printf("input your filename.\n");
memset(filename,'\0',100);
gets(filename);
}

printf("finish.\n");
return 0;
}
参考下
如果系统能生成20110228111111.xml,把它变成字符串存到某个数组中,假如b[100]
可以用for(i=0;i<100;i++)
{ ...
strcpy(filename,b);//将b拷贝到filename中
...处理文件写入

}

如果思路比较混乱,建议先分解成几块,封装不同函数中
例如 怎么把系统生成的文件名称拷贝到filename中
怎么写入相应信息。

② C语言中编写函数需要文件名作为形参

给个程序自己参考,下面程序运行时你输入一个文件名, 它会打开此文件,并写入0-99个数字。
#include <stdio.h>

void foo(const char *filename)
{
int i;
FILE *fp = fopen(filename, "w+");
for (i = 0; i < 100; i++)
fprintf(fp,"%d ", i);
fclose(fp);
}

void main()
{
char str[128];
scanf("%s", str);
foo(str);
}

③ C语言中如何用变量来命名输出的文件

输出文件,一般使用C语言的文件I/O函数,一般是使用fopen()打开文件,用fwrite()写入文件,fclose()关闭文件。fopen的函数原型如下:

FILE*fopen(constchar*path,constchar*mode);

参数说明:path指明要打开的文件名,mode指明以什么方式打开,所以一般通过一个字符数组来命名要输出的文件名。

charfile_name[256]="c:\myfile.txt";

上面定义了一个字符有256个char类型的字符数组file_name,用于保存要打开的文件myfile.txt,注意在C语言中符号需要转义才可以正常使用,因此使用路径名为c:\myfile.txt。

④ c语言自定义文件名

1.用C语言自定义文件名,涉及到的相关知识如下:

_finddata_t结构体:
struct _finddata_t {
unsigned attrib ;
time_t time_create ;
time_t time_access ;
time_t time_write ;
_fsize_t size ;
char name [260] ;
}

rename函数:
功能描述:
改变文件的名称或者位置,如果目标已存在,将被自动覆盖。
用法:
#include <stdio.h>
int rename(const char *oldpath, const char *newpath);
参数:
oldpath:旧文件名。
newpath:新文件名或者新位置。

返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EACCES:权能不足
EBUSY:参数oldpath或者newpath代表的是目录,而且一些进程正在使用它们
EFAULT: 内存空间不可访问
EINVAL:参数无效
EISDIR:newpath是一个现存的目录,而oldpath不是目录
ELOOP :路径解析的过程中存在太多的符号连接
EMLINK:目录超出允许的最大连接数
ENAMETOOLONG:路径名超出可允许的长度
ENOENT:路径名部分内容表示的目录不存在
ENOMEM: 核心内存不足
ENOSPC: 磁盘配额限制或空间不足
ENOTDIR:路径名的部分内容不是目录
EPERM : 包含路径名的文件系统不支持建立目录
EROFS:文件系统只读
ENOTEMPTY:newpath是一个非空的目录,除了. 和 ..以外,还包含其它入口。
EEXIST:同上
EXDEV:oldpath和newpath不处于同一文件系统

2.用C语言自定义文件名的代码例程如下:

#include<stdio.h>
#include<io.h>
intmain(intargv,char*argc)
{
longhandle;
inti=0,j=0;
struct_finddata_tfileinfo;
charfilePT[256]={''};
charfileType[20]={'a',''};
charfilePath[256]={''};
charnewName[256]={''};
charoldName[256]={''};

printf("InputtherenamefilePath: ");
scanf("%s",filePath);
fflush(stdin);
printf("InputtherenamefileType: ");
scanf("%s",fileType);
fflush(stdin);
sprintf(filePT,"%s\*%s",filePath,fileType);

handle=_findfirst(filePT,&fileinfo);
if(-1==handle)
{
printf("_findfirst()error ");
getchar();
return(-1);
}
i=1000;
do{
sprintf(oldName,"%s\%s",filePath,fileinfo.name);//全部路径
sprintf(newName,"%s\%d%s",filePath,i++,fileType);
j=rename(oldName,newName);
if(j!=0)
{
printf("rename()error ");
break;
}
}while(!_findnext(handle,&fileinfo));
_findclose(handle);
printf("ProgramEnd ");
getchar();
return(0);
}

⑤ C语言创建文件,文件名可以用变量么

C语言中windows环境下,至少有三种方式可以创建文件,文件名都可以使用变量。
常用的函数中,无论是fopen还是CreateFile,其参数都可以使用变量来作为文件名来创建文件和读写文件。

⑥ 用C语言实现文件读写操作(4)

用C语言实现文件读写操作

二、直接I/O文件操作

这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个 FILE指针来进行,而此类文件操作是围绕一个文件的“句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在WINDOWS中,句柄的概念扩展到所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在io.h和fcntl.h中定义,在使用时要加入相应的头文件。

函数 说明

open() 打开一个文件并返回它的句柄

close() 关闭一个句柄

lseek() 定位到文件的指定位置

read() 块读文件

write() 块写文件

eof() 测试文件是否结束

filelength() 取得文件长度

rename() 重命名文件

chsize() 改变文件长度

下面就对这些函数一一说明:

1.open()

打开一个文件并返回它的句柄,如果失败,将返回一个小于0的值,原型是int open(const char *path, int access [, unsigned mode]); 参数path是要打开的文件名,access是打开的模式,mode是可选项。表示文件的属性,主要用于UNIX系统中,在DOS/WINDOWS这个参数没有意义。其中文件的打开模式如下表。

符号 含义 符号 含义 符号 含义

O_RDONLY 只读方式 O_WRONLY 只写方式 O_RDWR 读/写方式

O_NDELAY 用于UNIX系统 O_APPEND 追加方式 O_CREAT 如果文件不存在就创建

O_TRUNC 把文件长度截为0 O_EXCL 和O_CREAT连用,如果文件存在返回错误 O_BINARY 二进制方式

O_TEXT 文本方式

对于多个要求,可以用"|"运算符来连接,如O_APPEND|O_TEXT表示以文本模式和追加方式打开文件。

例:int handle=open("c:\msdos.sys",O_BINARY|O_CREAT|O_WRITE)

2.close()

关闭一个句柄,原型是int close(int handle);如果成功返回0

例:close(handle)

3.lseek()

定位到指定的位置,原型是:long lseek(int handle, long offset, int fromwhere);参数offset是移动的量,fromwhere是移动的基准位置,取值和前面讲的fseek()一样,SEEK_SET:文件首部;SEEK_CUR:文件当前位置;SEEK_END:文件尾。此函数返回执行后文件新的存取位置。

例:

lseek(handle,-1234L,SEEK_CUR);//把存取位置从当前位置向前移动1234个字节。

x=lseek(hnd1,0L,SEEK_END);//把存取位置移动到文件尾,x=文件尾的位置即文件长度

4.read()

从文件读取一块,原型是int read(int handle, void *buf, unsigned len);参数buf保存读出的数据,len是读取的字节。函数返回实际读出的字节。

例:char x[200];read(hnd1,x,200);

5.write()

写一块数据到文件中,原型是int write(int handle, void *buf, unsigned len);参数的含义同read(),返回实际写入的字节。

例:char x[]="I Love You";write(handle,x,strlen(x));

7.eof()

类似feof(),测试文件是否结束,是返回1,否则返回0;原型是:int eof(int handle);

例:while(!eof(handle1)){……};

8.filelength()

返回文件长度,原型是long filelength(int handle);相当于lseek(handle,0L,SEEK_END)

例:long x=filelength(handle);

9.rename()

重命名文件,原型是int rename(const char *oldname, const char *newname); 参数oldname是旧文件名,newname是新文件名。成功返回0

例:rename("c:\config.sys","c:\config.w40");

10.chsize();

改变文件长度,原型是int chsize(int handle, long size);参数size表示文件新的长度,成功返回0,否则返回-1,如果指定的长度小于文件长度,则文件被截短;如果指定的长度大于文件长度,则在文件后面补''''。

例:chsize(handle,0x12345);

;

⑦ 请编写C语言程序,用于显示图片文件内容的编码,要求用十六进制显示,文件名通过命令行参数传入

#include<stdio.h>

intmain()
{
FILE*fp;
chars[1000];
gets(s);
if(fp=fopen(s,"rb"))
{
while(!feof(fp))
{
printf("%02hhx",(unsignedchar)fgetc(fp));
}
fclose(fp);
}
return0;
}

⑧ 编写C语言程序,将从键盘输入的信息存入指定文件中,要求文件名用命令行参数指定。

#include <stdio.h>
#include <string.h>
int main(int argc,char* argv[])
{
char filename[255];
char ch;
if(argc>1)
{
strcpy(filename,argv[1]);
}
else
{
printf("缺少文件名参数,请输入:");
scanf("%s",filename);
}
FILE* fp;
if((fp=fopen(filename,"w+"))==NULL)
{
printf("创建文件失败!");
return -1;
}
printf("输入内容以\"Ctrl+Z\"结束:\n");
ch=getchar();
while(ch!=EOF)
{
ch=getchar();
fputc(ch,fp);
}
fclose(fp);
return 0;
}

⑨ c语言 指定文件名作为参数 输出文件大小等等

希望采纳,这是linux高级程序设计上的截图