C語言經典編程282例 明日科技 第243例改錯

第243例:

#include<stdio.h>
main()
{
    FILE *fp; /*定義一個指向FILE類型結構體的指針變量*/
    char filename1[20], filename2[20]; /*定義數組爲字符型*/
    printf("please input the file name which do you want to change:\n");
    scanf("%s", filename1); /*輸入要重命名的文件所在的路徑及名稱*/
    if ((fp = fopen(filename1, "r")) != NULL) /*以只讀方式打開指定文件*/
    {
        printf("%s open successfully", filename1);
        printf("\nplease input new name!");
            scanf("%s", filename2); /*輸入新的文件路徑及名稱*/
        rename(filename1, filename2); /*調用rename函數進行重命名*/
        fclose(fp); /*關閉文件*/
    }
    else
    {
        printf("cannot find!!");
        exit(0);
    }
}

這個程序是無法修改文件名的。可以改成以下能使用。


#include<stdio.h>
#include<stdlib.h>
main()
{
    FILE *fp; /*定義一個指向FILE類型結構體的指針變量*/
    char filename1[20], filename2[20]; /*定義數組爲字符型*/
    printf("請輸入要更改的文件名:\n");
    scanf("%s", filename1); /*輸入要重命名的文件所在的路徑及名稱*/
    if ((fp = fopen(filename1, "r")) != NULL) /*以只讀方式打開指定文件*/
    {
        printf("%s 文件定位成功", filename1);//定位後一定要關閉文件才能操作文件名
fclose(fp); /*關閉文件*/
        printf("\n請輸入新名:");
            scanf("%s", filename2); /*輸入新的文件路徑及名稱*/
        rename(filename1, filename2); /*調用rename函數進行重命名*/
    }
    else
    {
        printf("文件定位失敗!");
        exit(0);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章