知識點
1.讀文件
int main(int argc, const char * argv[]) {
char *path="/Users/huozhenpeng/Desktop/long_text.txt";
FILE *fp;
fp=fopen(path, "r");
char chr[50];
while(fgets(chr, 50, fp))
{
printf("%s\n",chr);
}
fclose(fp);//記得關閉
return 0;
}
可以正確輸出結果:
<dimen name="px2dp_92">92px</dimen>
<dimen name="px2dp_94">94px</dimen>
<dimen name="px2dp_96">96px</dimen>
當把一個指針作為條件表達式時,所要判斷的條件實際上就是“該指針是否為一空指針”
2.寫文件
int main(int argc, const char * argv[]) {
char *path="/Users/huozhenpeng/Desktop/long_text1.txt";
FILE *fp;
fp=fopen(path, "w");
char *content="hello world";
fputs(content, fp);
return 0;
}
以“w”方式打開一個文件時,如果這個文件不存在則會創建該文件。
image.png
image.png
文件概念
一個文件分為兩部分:控制信息和內容信息
控制信息:比如說右鍵看文件的屬性(大小、格式、存放的路徑等等)
內容信息:文件的實際的內容
讀文件的過程:磁盤->文件緩沖區->應用程序內存空間
從磁盤到文件緩沖區的時候,會根據文件中控制信息(純文本、圖片)來進行相應的解碼操作。
c語言中二進制文件和文本文件讀寫的區別:
寫:\n自動轉換為\r\n
讀:\r\n自動轉換為\n
復制文件
int main(int argc, const char * argv[]) {
char *originalPath="/Users/huozhenpeng/Desktop/long_text.txt";
char * filePath="/Users/huozhenpeng/Desktop/long_text2.txt";
FILE *read;
FILE *write;
read=fopen(originalPath, "r");
write=fopen(filePath, "w");
char temp[50];
int len=0;
while ((len=fread(temp, sizeof(char),50 , read))>0) {
fwrite(temp, sizeof(char), len, write);
}
fclose(read);
fclose(write);
獲取文件大小
int main(int argc, const char * argv[]) {
char *originalPath="/Users/huozhenpeng/Desktop/long_text.txt";
FILE *read=fopen(originalPath, "r");
fseek(read, 0, SEEK_END);//將文件指針read從文件末尾(SEEK_END)偏移0個字節(以字節為單位)
long size= ftell(read);//獲取當前文件指針read所指向的位置
printf("文件長度=%ld\n",size);
return 0;
}
輸出結果:
文件長度=11721
image.png
文件加密
假設加密算法就是把每個字符的值加2
int main(int argc, const char * argv[]) {
char *originalPath="/Users/huozhenpeng/Desktop/long_text.txt";
char * filePath="/Users/huozhenpeng/Desktop/long_text2.txt";
FILE *read;
FILE *write;
read=fopen(originalPath, "r");
write=fopen(filePath, "w");
int temp;
//#define EOF (-1)
while ((temp=fgetc(read))!=EOF) {
fputc(temp+2, write);
}
fclose(read);
fclose(write);
return 0;
}
文件解密
int main(int argc, const char * argv[]) {
char *originalPath="/Users/huozhenpeng/Desktop/long_text2.txt";
char * filePath="/Users/huozhenpeng/Desktop/long_text3.txt";
FILE *read;
FILE *write;
read=fopen(originalPath, "r");
write=fopen(filePath, "w");
int temp;
//#define EOF (-1)
while ((temp=fgetc(read))!=EOF) {
fputc(temp-2, write);
}
fclose(read);
fclose(write);
return 0;
}
預處理
概念要復雜很多,可以百度
http://blog.csdn.net/dlutbrucezhang/article/details/8753765
就是這些東西
#include <iostream>
#include <stdio.h>
#define MAX 5;
#define COMPARE(x,y) x>y?x:y
程序驗證:
#include <iostream>
#include <stdio.h>
#define MAX 5;
#define COMPARE(x,y) x>y?x:y
int main(int argc, const char * argv[]) {
int m;
m=COMPARE(3, 10);
printf("%d\n",m);
return 0;
}
輸出結果:
10