① 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]={'