1、函數(shù)名應(yīng)該遵從C語(yǔ)言命名規(guī)則,文件名則需遵從windows文件名命名規(guī)則。
成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元洛江做網(wǎng)站,已為上家服務(wù),為洛江各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
2、函數(shù)是C語(yǔ)言的重要組成部分,在結(jié)構(gòu)化程序設(shè)計(jì)中,一個(gè)函數(shù)可以是一個(gè)文件模塊,或幾個(gè)函數(shù)組成一個(gè)文件模塊,這些模塊可作為磁盤文件獨(dú)立存儲(chǔ)。
3、由以上兩點(diǎn)可知,函數(shù)是C語(yǔ)言的元素,文件則是存放在磁盤上的信息體,兩者之間是有聯(lián)系的,但區(qū)別也是明顯的。
#include stdio.h
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;
}
1、是不是加入大程序時(shí),沒(méi)有引用那個(gè)頭文件;
2、加入的程序,什么變量或函數(shù)與大程序的變量或函數(shù)同名?
補(bǔ)充:
3、加入的函數(shù)在文件開頭沒(méi)有聲明?
#include stdio.h
int main(void)
{
char oldname[80], newname[80];
/* 輸入要重命的文件名和替換新的名字 */
printf("File to rename: ");
gets(oldname);
printf("New name: ");
gets(newname);
/* 重命名文件名 */
if (rename(oldname, newname) == 0)
printf("Renamed %s to %s.\n", oldname, newname);
else
perror("rename"); //輸出系統(tǒng)錯(cuò)誤信息
getch();
return 0;
}//文件要在這個(gè)程序的目錄下 ,如有個(gè)123.txt,改為321.txt
//file to rename:123.txt
//new name:321.txt
看你說(shuō)的意思僅僅是改名。用rename函數(shù)(linux)
表頭文件
#includestdio.h
定義函數(shù)
int rename(const char * oldpath,const char * newpath);
函數(shù)說(shuō)明
rename()會(huì)將參數(shù)oldpath 所指定的文件名稱改為參數(shù)newpath所指的文件名稱。若newpath所指定的文件已存在,則會(huì)被刪除。
返回值
執(zhí)行成功則返回0,失敗返回-1,錯(cuò)誤原因存于errno
范例
#include stdio.h
void main(int argc,char **argv)
{
if(argc3){
printf(“Usage: %s old_name new_name\n”,argv[0]);
return;
}
printf(“%s=%s”,argc[1],argv[2]);
if(rename(argv[1],argv[2]0)
printf(“error!\n”);
else
printf(“ok!\n”);
}
rename函數(shù)功能是給一個(gè)文件重命名,用該函數(shù)可以實(shí)現(xiàn)文件移動(dòng)功能,把一個(gè)文件的完整路徑的盤符改一下就實(shí)現(xiàn)了這個(gè)文件的移動(dòng)。具體參見(jiàn)下面的程序示例說(shuō)明。
頭文件:在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;
}
執(zhí)行過(guò)程:
File to rename: D:\\in.dat
New name: G:\\in.dat
Renamed D:\\in.dat to G:\\in.dat.
這樣就實(shí)現(xiàn)了in.dat從D盤移動(dòng)到G盤。
在unix或linux系統(tǒng)中:
#include
int rename(const char *oldname, const char *newname);
函數(shù)說(shuō)明
(1) 如果oldname為一個(gè)文件而不是目錄,那么為該文件更名。在這種情況下,如果newname作為一個(gè)目錄已存在,則它不能重命名一個(gè)目錄。如果newname已存在,而且不是一個(gè)目錄,則先將其刪除然后將oldname更名為newname。對(duì)oldname所在目錄以及newname所在的目錄,調(diào)用進(jìn)程必須具有寫許可權(quán),因?yàn)閷⒏倪@兩個(gè)目錄。
(2) 如若oldname為一個(gè)目錄,那么為該目錄更名。如果newname已存在,則它必須是一個(gè)目錄,而且該目錄應(yīng)當(dāng)是空目錄(空目錄指的是該目錄中只有. 和.. 項(xiàng))。如果newname存在(而且是一個(gè)空目錄),則先將其刪除,然后將oldname更名為newname。另外,當(dāng)為一個(gè)目錄更名時(shí),newname不能包含oldname作為其路徑前綴。例如,不能將/usr更名為/usr/foo/testdir,因?yàn)槔厦郑?/usr/foo)是新名字的路徑前綴,因而不能將其刪除。
(3) 作為一個(gè)特例,如果oldname和newname引用同一文件,則函數(shù)不做任何更改而成功返回。
返回值 執(zhí)行成功則返回0,失敗返回-1,錯(cuò)誤原因存于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]) 0 )
printf("error!\n");
else
printf("ok!\n");
return 0;
}