自考“高級(jí)語(yǔ)言程序設(shè)計(jì)”習(xí)題答案詳解(46)

字號(hào):

3.編一個(gè)程序,將磁盤中的當(dāng)前目錄下名為“ccw1.txt” 的文本文件復(fù)制在同一目錄下,文件名改為“ccw2.txt”。
    「解」程序需要兩個(gè)文件指針變量,一個(gè)對(duì)應(yīng)讀文件,另一個(gè)對(duì)應(yīng)寫文件。并分別用讀和寫方式打開(kāi)兩個(gè)文件。
    接著是以讀文件狀態(tài)作為循環(huán)控制條件,在讀文件還未結(jié)束下循環(huán),反復(fù)讀人字符,并將讀人字符復(fù)寫到寫文件中。程序如下:
    # include
    # include
    FILE * rp, * wp;
    void main()
    { int c;
    if((rp= fopen(“ccw1.txt”,“r”))== NULL) {
    printf(“Can‘t open file %s.\n”,“ccwl.txt”); exit(0);
    }
    if((wp= fopen(“ccw2.txt”,“w”))== NULL) {
    printf(“Can‘t open file %s.\n”,“ccw2.txt”); exit(0);
    }
    while((c= fgetc(rp))!= EOF)
    fputc( c,wp);
    fclose(wp);
    fclose(rp);
    }
    4.編程序,對(duì)名為“CCW.TXT”的磁盤文件中“@”之前的所有字符加密,加密方法是每個(gè)字節(jié)的內(nèi)容減10.
    「解」程序從文件讀出字符,在字符“@”未出現(xiàn)之前,將讀出字符作加密處理后回寫。加密循環(huán)受文件結(jié)束或當(dāng)前字符是“@”字符控制。程序如下:
    # include
    # include
    # define DALTA 10
    FILE * rp;
    void main()
    { int c;
    if(( rp = fopen(“ccw.txt”,“r+”)) ==NULL ) {
    printf(“Can‘t open file %s.\n”,“ccw.txt”); exit(0);
    }
    while(( c= fgetc(rp))!= EOF) {
    if( c ==‘@’) break;
    c+= DALTA;
    fseek( rp,-1L,1 );
    fputc( c, rp);
    fseek( rp,OL,l);
    }
    fclose(rp);
    }