① c语言创建文件,文件名可以用变量么
C语言中windows环境下,至少有三种方式可以创建文件,文件名都可以使用变量。
常用的函数中,无论是fopen还是CreateFile,其参数都可以使用变量来作为文件名来创建文件和读写文件。
② c语言中,fopen(“文件名”,“打开方式”)中的文件名可以是变量吗
文件名可以直接写进去,也可以放在变量里:
FILE *fp;
char namein[]="abc.txt";
fp=fopen(namein,"r");
或 fp=fopen("abc.txt","r");
文件名若带路径,单反斜杠要写成双反斜杠,例如:
char namein[]="C:\\path\\abc.txt";
长路径可用8字母格式缩写:
C:\Documents and Settings\Wang\...缩写:
char namein[]="C:\\Docume~1\\Wang\\abc.txt";
二进制文件打开方式用rb:
fp=fopen("abc.txt","rb"); 或:
fp=fopen(namein,"rb");
③ C语言中将文件名赋值给字符串变量的作用是什么
就是你说的赋值作用,让一个字符串变量的值为那个文件名,比如const char* p = "text.txt";后面要用到这个文件名,就可以用变量p来代替了。
④ c语言中,fopen(“文件名”,“打开方式”)中的文件名可以是变量吗谢谢
可以
从文件中读取一个数
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int a;
char str[100];//储存文件名的数组
FILE *fp;
printf("请输入文件名:");
gets(str);
if (NULL == (fp = fopen(str, "r")))//注意这的表达形式
{
printf("文件打开失败!\n");
exit(0);
}
while (fscanf(fp, "%d", &a) != EOF);
printf("%d\n", a);
}
⑤ c语言fopen函数如何用一个变量来作为文件名
用char数组
实例:
#include<stdio.h>
int main(void)
{
char F_PATH[]="d:\\myfile\\file.dat";
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp)
{
return -1;//要返回错误代码
}
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return 0;
}
⑥ C语言中如何将一个变量作为文件名的一部分(该文件带有后缀)
相当于把i放到文件名的字符串中吧
不知文件名你用的什么类型
Cstring之类都有format函数
⑦ C语言如何读/写名带变量的文件
没太看明白你的意思,是要复制这个文件到别的地方么?
C语言没有这样的标准库函数,你可以按照这样的思路复制文件:
以二进制模式打开源文件进行读取,打开目标文件进行写入
读取源文件中的一个字符,如过没有达到源文件的末尾,就把这个字符写入目标文件
当达到源文件末尾时关闭文件
有变量的文件名可以使用sprintf函数得到文件路径之后再打开
例如
int a = 2;
char *filePath[256];
想打开 a.txt(2.txt) 的话,用sprintf(filePath, "%d.txt", a); filePath的值就是2.txt了
⑧ 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语言如何写文件如何将文件名用参数代替
#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中
怎么写入相应信息。