A. c语言批量修改文件名
我只是想学个方法,谁也不能否认以后没有可能用不到,想知道怎么用c语言进行文件的批量重命名
B. C语言中,如何用根据不同的变量来更改文件名
使用sprintf函数来生成一个字符串,然后用这个字符串来作为文件名。
例如:
char buffer[256]; /*用来存储文件名的字符串*/
/*生成文件名,并写入到buffer里。*/
sprintf( buffer,
"Solubility Sb(%.2f)Pb(%.2f)Ag(%.2f)H(%.2f).txt",
Sb_t, Pb_t, Ag_t, H );
C. 如何在C语言编程里面修改源文件名字
C修改文件名:使用rename函数。
rename函数:功能描述:改变文件的名称或者位置,如果目标已存在,将被自动覆盖。用法:#include<stdio.h>intrename(constchar*oldpath,constchar*newpath);参数:
oldpath:旧文件名。newpath:新文件名或者新位置。
具体可以分以下2种情况:
1、修改单个文件
直接使用rename即可。
2、批量修改文件(如:按一定规则修改某目录下所有文件)
需要使用opendir遍历目录,然后修改该目录下文件。下面提供一个简单的例子。
voidModFilesName(constchar*pcszPath)
{
charszPathFile[1024]={0};//路径+文件名
DIR*dir_p;
structdirent*direntp;
structstatentryInfo;
//文件目录不存在,则创建
if(stat(pcszPath,&entryInfo)<0)
{
printf("Autocreatefolder:%s ",pcszPath);
mkdir(pcszPath,0755);
}
if((dir_p=opendir(pcszPath))==NULL)
{
return;
}
while((direntp=readdir(dir_p))!=NULL)
{
//组合完整路径
sprintf(szPathFile,"%s/%s",pcszPath,direntp->d_name);
//判断文件是否是目录
if(lstat(szPathFile,&entryInfo)==0)
{
if(S_ISDIR(entryInfo.st_mode))
{
continue;//忽略目录
}
rename(szPathFile,你要修改成的文件名);
}
}//while(...
closedir(dir_p);
}
推荐一片文章:http://blog.chinaunix.net/uid-7525568-id-251530.html
希望能帮助到你,你的好评是我前进的动力!谢谢!
D. 怎样在c语言中修改已录入的文件信息,谢谢
用FILE定义文件指针
FILE
*fp;
fp=fopen("文件名","a");//往原文件追加数据
fp=fopen("文件名","w");//重建文件,采用这种方式之前你应该将原文件中的数据都存储到内存中
操作完毕后应该用fclose(fp);关闭文件,否则会丢失数据
E. C语言怎么修改文件信息
#include<stdio.h>
#include<stdlib.h>//文件操作函数头文件
struct st{//定义一个结构体
char a[11];//301
char b[11];//01
char c[29];//xiaoming
char d[9];//m1
};
int main()
{
FILE *fp;//文件指针
fp=fopen("D:\123.txt","r+");//用fopen函数打开D盘下,名为123.txt的文件;
struct st s={"301","01","xiaoming","m"};//各成员的初值;
scanf("%s%s",s.c,s.d);//输入之后会把原有的信息覆盖掉;
fprintf(fp,"%s %s %s",s.a,s.b,s.c,s.d);//用fprintf函数将固定格式的数据写入文件;
printf("%s %s %s %s",s.a,s.b,s.c,s.d);
fclose(fp);
return 0;
/*这样就可以修改文件内容了,之前没仔细看,没看到是文件操作*/
}
F. 用C语言怎么改文件名
我告诉你一个很简单的方法
你加头文件#include<stdlib.h>
在语句中写system("ren
qq.txt
ww.txt");
如果文件不在程序目录下,就在文件名那里加路径就可以了,但路径中的单斜杠(\)要写成双斜杠(\\);
如system("ren
c:\\qq.txt
ww.txt")
如果你要用字符串来命名文件名。就用这个函数strcat()函数来把字符串接起来就可以了,在、前面加头文件#include<string.h>.
如上面的列子可以这么写:
char
a[10]="ww.txt";//这是你要改成的文件名。
char
b[20]="ren
c:\\qq.txt
";
strcat(b,a);//这里把a、b字符串接起来,经过这里b就等于"ren
c:\\qq.txt
ww.txt";了
。
//下面直接又调用
system(b);//因为字符串b
经过和a连接后就是整个你需要填进的参数了。
G. 如何更改C语言的文件名(如下图)
点击菜单栏上的文件按钮,可以看到另存为,可以把程序文件存成其他的名字。
还有一个方法是,关闭vs,然后找到工程文件夹,找到 练习.c,然后点右键,选择重命名即可。
H. 用C语言批量更改文件名
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <iconv.h>
#include <errno.h>
/*int to_iconv(char *in,size_t in_bytes,char *out,size_t out_bytes,
const char *from,const char *to)*/
int to_iconv(char *in,char *out,size_t out_bytes,const char *from,const char *to)
{
iconv_t cd;
size_t in_bytes=strlen(in);
//size_t out_bytes;
if((cd=iconv_open(to,from)) == (iconv_t)-1)
{
perror("iconv_open");
return -1;
}
if(iconv(cd,&in,&in_bytes,&out,&out_bytes) == -1)
{
perror("iconv");
return -1;
}
iconv_close(cd);
return 0;
}
void read_and_iconv(char *path,const char *from,const char *to)
{
DIR *dirp;
struct dirent *dir;
struct stat buf;
char temp[512]; //用于保存转换后的文件名称
if((dirp=opendir(path)) == NULL) //读取文件夹
{
perror("opendir");
return;
}
chdir(path); //进入到该文件夹内部
while(dir=readdir(dirp)) //读取该文件夹下所有文件
{
if((strcmp(dir->d_name,".") == 0) || (strcmp(dir->d_name,"..") == 0))
//过滤掉.以及..文件夹,不然会死循环的
continue;
bzero(temp,sizeof(temp));
to_iconv(dir->d_name,temp,sizeof(temp),from,to); //进行编码转换
rename(dir->d_name,temp); //进行重命名
printf("rename %s to %s\n",dir->d_name,temp);
stat(temp,&buf);
if(S_ISDIR(buf.st_mode)) //判断当前读取的文件是否为文件夹
{
read_and_iconv(temp,from,to); //如果是则递归处理
chdir(".."); //处理完成后一定要记得返回上一层目录哦,不然其它文件就无法处理了
}
}
closedir(dirp);
}
int main(int argc,char **argv)
{
read_and_iconv(argv[1],argv[2],argv[3]);
/*第一个参数是要转换的文件夹所在的文件夹名称
*第二个参数是文件名称所使用的编码(这里为GBK)
*第三个参数是要转换成何种编码(这里为UTF-8)
*/
return 0;
}