1. 程式人生 > >C語言經典程式設計282例 明日科技 第243例改錯

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);
    }
}

相關推薦

C語言經典程式設計282 明日科技 243改錯

第243例: #include<stdio.h> main() {     FILE *fp;/*定義一個指向FILE型別結構體的指標變數*/     char filename1[20]

C語言經典程式設計282-19-直接插入排序

插入排序是直接把一個數據插入到已有的序列中 插入位置的確定:是將待插入的資料與已有序列進行比較。 #include <stdio.h> void insort(int s[],int n) { int i,j; for(i=2;i<=n;i++) //從

Mr.J--C語言經典程式設計100

C語言,一般為初學者的首選語言,說簡單也簡單,但是要真正學好C語言,也是一件很難的事,懂了這些100個例題,也就算是入門了吧,畢竟語言要學的太多,這只是基礎。   【程式1】 題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長

C語言經典程式設計題--哥德巴赫猜想 、完數 、猜數字等

  一、  驗證歌德巴赫猜想:任意一個不小於6的偶數都可以表示成兩個素數的和。從鍵盤任意給一個符合條件的數,輸出相應的兩個素數。 素數:指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數 程式碼如下: #include <stdio.h>

C/C++語言經典、實用、趣味程式設計程式設計精解

1.繪製餘弦曲線 在螢幕上用“*”顯示0~360度的餘弦函式cos(x)曲線 *問題分析與演算法設計 如果在程式中使用陣列,這個問題十分簡單。但若規定不能使用陣列,問題就變得不容易了。 關鍵在於餘弦曲線在0~360度的區間內,一行中要顯示兩個點,而對一般的

C語言經典 php版(僅練習用)

技術分享 滿足 重復數 -s http for 語言 ++ tro 題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? 程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。 代碼: 1 for

C語言經典程式100

【程式1】 題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月    後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 1.程式分析: 兔子的規律為數列1,1,2,3,5,8,13,21.... 2.程式原始碼: #

C語言經典一百

經典C語言程式設計100例 1.數字排列    2.獎金分配問題    3.已知條件求解整數    4.輸入日期判斷第幾天 5.輸入整數進行排序    6.用*號顯示字母C的圖案  7.顯示特殊圖案    8.列印九九口訣 9.輸出國際象棋棋盤    10.列印樓梯並按條

C語言趣味程式設計程式設計精解

1.繪製餘弦曲線 在螢幕上用“*”顯示0~360度的餘弦函式cos(x)曲線 *問題分析與演算法設計 如果在程式中使用陣列,這個問題十分簡單。但若規定不能使用陣列,問題就變得不容易了。 關鍵在於餘弦曲線在0~360度的區間內,一行中要顯示兩個點,而

c語言趣味程式設計100】數值轉換

問題:數值轉換 給定一個M進位制的數X 實現對X向任意的一個非M進位制的數的轉換  #include<stdio.h> /* 問題:數值轉換 給定一個M進位制的數X 實現對X向任意的一個非M進位制的數的轉換 **/ #define MAXCHAR 101

c語言趣味程式設計100】氣泡排序

氣泡排序: 實現思路:  氣泡排序的思想就是一次迴圈將兩兩數之間相互比較,將較大的數放到後面,一次比較完之後  程式比較的次數就減少一次,依次比較 每比較一次 比較的次數就減少一次。  因此 用兩個for迴圈 外層用來判斷迴圈的次數,內層for迴圈用來比較程

c語言趣味程式設計100】最佳存款方案

問題:最佳存款方案   假設銀行一年整除領取的月息為0.63% 現在某人手中有一筆錢,他打算在今後的5年中的   每年年底取出1000元 到第5年時剛好取完 請算出他存錢時應存入多少 程式設計思路:    題目中問的是最初存入的錢數是多少

c語言趣味程式設計100】牛頓迭代法c

問題:牛頓法求最優解,本質上就是求f(x)=0的過程,求某個點的方根,本質上是求x^n-m=0的過程,如求f(x)=x^2,當f(x)=3,求x的最優解,就是求x^2-3=0的x的解。  牛頓迭代法求方程的根。  #include<stdio.h>

c語言趣味程式設計100】兔子問題

 兔子問題:         有一對兔子,從出生後第3個月起每個月都生一對兔子,         小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數?  解題思路:

c語言趣味程式設計100】抓交通肇事犯

 問題:一輛卡車違反交通規則,撞人後逃跑.現場有三個人目擊事件, 但都沒有記住車牌號.只記下車號的一些特徵.甲說:牌照的前 兩個數字相同;乙說:牌照的後兩個數字相同,但與前兩個不同 ,丙是位數學家,他說:四位的車號剛好是一個整數的平方。 #include<std

c語言趣味程式設計100】打魚還是晒網

問題 打魚還是晒網 程式設計思路:三天打魚 兩天晒網 實現的思路主要是要求出輸入的指定的時間和距離1990 01 01這個時間的天數 我們知道年份有閏年和平年之分 閏年2月份是29天 平年2月份28天 因此 定義一個函式runyear()用來判斷程式是否是閏年,這個程式模組化的思想

c語言趣味程式設計100】借書方案知多少

1.問題描述 小明有5本書,要借給A B C 這三個小朋友,每人每次只能借一本 則有多少種不同的解法 2.思路:求出不同的組合,用暴力破解 可以實現,只要控制好條件     程式的條件就是 A  B  C不能是相同的一本書,只

c語言趣味程式設計100】百錢百雞問題

1.問題描述  我國古代數學家張丘建在《算經》一書中提出的數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何。 2.程式碼實現思路 思路:我們知道問題求的公雞 母雞 小雞的組合個數     

C語言經典例題(菜鳥教程100

這兩天正在看基礎的演算法,在做的時候肯定不能避免的接觸了菜鳥上的經典100例,但是使用的時候發現並不是那麼的方便,因為它只是給了序號,如果查詢某一問題的話很不方便,所以做了這篇部落格,希望給自己和其他人帶來幫助!

C語言程式設計進階程-2 一個程式,多個檔案

演示:建立多檔案的專案main.c#include <stdio.h> int max(int x,int y); int main( ) { int a,b,c; printf("輸入兩數:"); scanf("%d %d", &a, &b