您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
061第十一章 文件操作02(新版)
发布时间:2021-05-08 17:18:48编辑:雪饮阅读()
对于fputc函数的使用要说明几点
用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符从文件首开始。如需保留原有文件内容,希望写入的字符以文件末开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。
實例如:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
char ch, filename[20];
printf("Please input the filename you want to write: ");
scanf("%s", filename);
/*
wt+:
wt+” 读写打开或建立一个文本文件,允许读写
*/
if( !(fp = fopen(filename, "wt+")))
{
printf("Cannot open the file!\n");
exit(0); // 终止程序
}
printf("Please input the sentences you want to write: ");
/*
個人理解:
上一次可能遺留換行(可能是scanf遺留)和NUL(可能是char默認沒有被賦值情況下)
而對於換行可以直接getchar()讀取掉,而對於NUL則必須通過如ch=getchar()讀取掉
關於NUL:
NUL是ASCII字符集中第一个字符的名称,它对应于一个零值。C语言中没有NUL这样的预定义宏。注意:在ASCII字符集中,数字0对应于十进制值48,不要把数字0和'\0'(NUL)的值混同起来。
字符串就是一串零个或多个字符,并且以一个位模式全0的NUL字节结尾。因此,字符串所包含的内部不能出现NUL字节,NUL字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括NUL字节。
*/
ch=getchar();
ch=getchar();
/*
儅字符碰到EOF(結尾)時就會終止讀取,在命令行中可以在單獨一行中輸入ctrl+z的組合鍵然後回車即可模擬EOF
*/
while( ch != EOF )
{
//向文件中填充字符
fputc(ch, fp);
//從輸入中讀取字符
ch = getchar();
}
fclose(fp);
}
編譯運行結果如:
D:\cproject>gcc main.c -o m
D:\cproject>m.exe
Please input the filename you want to write: kasumi
Please input the sentences you want to write: kasumi
^Z
將一個壓縮包合并到圖片中
windows中dos命令的copy命令有一個參數
/B 表示一个二进位文件。
該參數有一個妙用,可以用來合并文件
比如有er.png、nesoid.zip,那麽可以通過該命令將er.png和nesoid.zip合并為一個文件,比如合并為一個圖片文件3.jpg
D:\cproject>copy /b er.png+nesoid.zip 3.jpg
er.png
nesoid.zip
已复制 1 个文件。
然後可以看到合并后的3.jpg就是原來的圖片,但是如果將這個文件修改為rar壓縮格式(這裏感覺修改為zip也可以)后就可以通過例如winrar打開看到原來的nesoid.zip壓縮包内的内容了
关键字词:文件,copy