青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小默

[zz] File I/O

http://www.csie.ntu.edu.tw/~cprog2003/downloads/Notes%20on%20C%20File%20I-O.htm

File I/O

The FILE type

  1. 當在C中想使用檔案時,就需要宣告FILE variable
  2. FILE variable是一個pointer,因它是一個指向檔案現在使用到哪裡的指標。 在比較底層的意義中(close to hardware),它是一個file descriptor。
Example:
FILE *myfile;

在C中,實際上是使用Stream I/O的方式來存取資料。也就是說,當打開一個檔案後, OS那邊會將一部分的資料先讀起來在一個暫存的Buffer裡,然後FILE這個pointer就會去指向這個buffer, 每讀取一個字元時,它就會往前移動一個。同樣的,當我們在寫入的時候,當我們完成像是fprintf時, 它也是先寫入這個buffer中,直到這個buffer被flush或是寫出到device中,才會真正的做改變。

這張圖的左邊就是device;右邊就是buffer。

Associate the variable with a file

  1. Use fopen()
  2. Specify the file path and the mode
  3. 成功的話, fopen會return一個file pointer;否則, return NULL
"r"open for reading; 假如檔案不存在,則失敗。
"w"open or create for writing; 假如檔案存在,其現存的內容會被覆蓋。
"a"open or create for writng; 看w的不同在於,它會接著現存的內容繼續做下去
"r+"open for reading and writing; 檔案一定要存在
"w+"open or create for reading and writing; 檔案不存在就開新檔案,存在就覆寫
"a+"open or create for reading and writing; 不同處同上面a和w的差別

FILE *fopen(char *name, char *mode)
Example:
FILE *myfile;
myfile = fopen("input.txt", "r");

Testing for EOF

  1. EOF是保留字,表示End Of File。
  2. 當想要檢查現在的file pointer是否已經只到檔案的結尾時,可以使用feof(file)
  3. 當真的已經是EOF時,return 0;否則,return non-zero
Syntax:
int feof( FILE *stream );
Example: 
if( feof( myfile ) )
printf("End of file\n");

Writing / Reading by single character

  1. To read in or write out text by char, use fgetc() and fputc()
  2. fgetc會return下一個在input stream中的char,若是已經EOF,則return EOF。而為什麼他要return int而不是char,則是因為EOF已經不在char的範圍內(不在0~255,為-1)。
  3. fputc則會return所寫入的char的值;假如發生錯誤的話,return EOF。
Syntax:
int fgetc( FILE *stream );
int fputc( int c, FILE *stream );
Example: 
FILE *myfile, *myfile2;
int c;
myfile = fopen("in", "r");>
myfile2 = fopen("out", "w");
while( (c=fgetc(myfile)) != EOF)
	fputc(c, myfile2);

Writing / Reading by line of text

  1. To read in or write out text by line, use fgets() and fputs()
  2. fgets會return指向str的char pointer;假若發生錯誤或是遇到EOF時,returns NULL
  3. fputs return 0 on success and EOF on error.
Syntax:
char *fgets(char *str, int size, FILE *stream);
int fputs(const char *str, FILE *stream);
Example: 
FILE *myfile, *myfile2;
char tmp[80];
myfile = fopen("in", "r");>
myfile2 = fopen("out", "w");
while( (fgets(tmp, 80, myfile)) != NULL)
	fputs(tmp, myfile2);

fprintf() and fscanf()

  1. Work like printf and scanf, except with files
  2. 跟上面fgets, fputs不同的是,這兩個function可以做formatted I/O
Examples:
fprintf(outputfile, "My age is %d\n", myAge);
fscanf(inputfile, "%f", &floatVariable);


Close the files

  1. 當在一個檔案的工作已經結束後,可以使用fclose(),使之前buffer的資料實際寫入。
  2. 因此當在對檔案的寫入結束後,最好還是用fclose將他關掉。
  3. 成功的話,return 0;否則,return EOF
Syntax:
int fclose( FILE *stream );

A sample program

假如你們還是不會用的話 ,可以套用(參考)下面的程式。
#include 
#define INFILE "input.txt"
//將下面這個學號換成你自己的學號
#define OUTFILE "R92922099"

char *readin(FILE *);

int main() {
    FILE *infile, *outfile;
    char *input;

	/* 打開檔案 */
    if( (infile = fopen(INFILE, "r")) == NULL ) {
        printf("can't open input file\n");
        exit(1);								//假若失敗的話,就離開程式
    }else if( (outfile = fopen(OUTFILE, "w")) == NULL ) {
        printf("can't open output file\n");
        exit(1);								//假若失敗的話,就離開程式
    }
	/* 用剛剛取得的file pointer來讀取檔案的內容的動作 */
    input = readin( infile );
	/*
		將你們如何處理從檔案中所讀到的資料result,
		寫在這裡,或是在這裡呼叫function
	*/

    fclose(infile);
    fclose(outfile);
}

//將檔案中所有的內容都讀取出來,用result指向這個資料,然後return這個pointer做處理
char *readin(FILE *in) {
    char tmp[80];
    char *result="";
    while( fgets( tmp, 80, in)!=NULL ) {
        asprintf(&result, "%s%s", result, tmp);
    }
    return result;
}


posted on 2011-03-24 17:17 小默 閱讀(622) 評論(0)  編輯 收藏 引用 所屬分類: Language

導航

統計

留言簿(13)

隨筆分類(287)

隨筆檔案(289)

漏洞

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美另类高清视频在线| 欧美激情精品久久久久久免费印度 | 久久全国免费视频| 久久av最新网址| 久久精品国产亚洲5555| 久久精品视频在线免费观看| 久久久99精品免费观看不卡| 玖玖玖国产精品| 亚洲国产国产亚洲一二三| 久久综合九色九九| 亚洲国产视频一区| 亚洲一区二区视频在线观看| 欧美与黑人午夜性猛交久久久| 久久人人97超碰国产公开结果| 榴莲视频成人在线观看| 欧美日韩国产三区| 国产午夜亚洲精品羞羞网站 | 欧美激情一区二区三区四区| 亚洲精品网站在线播放gif| 在线一区二区三区四区| 欧美在线影院| 欧美日本免费| 国产主播一区二区| 日韩亚洲欧美成人| 久久久欧美精品sm网站| 亚洲精品欧美日韩专区| 久久大香伊蕉在人线观看热2| 免费在线成人av| 国产免费成人| 一区二区免费在线观看| 久久综合九色综合久99| 在线天堂一区av电影| 久久免费的精品国产v∧| 国产精品久久久久久久久久免费| 一色屋精品视频在线观看网站| 一区二区三区四区五区视频| 欧美gay视频| 欧美亚洲免费电影| 欧美日韩性生活视频| 在线视频成人| 久久久99精品免费观看不卡| 一本久道综合久久精品| 牛牛影视久久网| 一色屋精品视频在线看| 欧美中文字幕视频| 亚洲午夜影视影院在线观看| 欧美母乳在线| 日韩午夜免费视频| 欧美福利专区| 久久一区激情| 这里只有精品在线播放| 欧美激情麻豆| 亚洲国产高清aⅴ视频| 久久精品72免费观看| 亚洲性感美女99在线| 欧美午夜美女看片| 亚洲影音一区| 正在播放亚洲一区| 国产精品久久久久久超碰| 亚洲一区二区欧美日韩| 亚洲精品在线电影| 欧美日韩一区二区在线观看| 一区二区三区欧美在线| 亚洲精品美女91| 欧美日韩美女在线| 亚洲一区二区三区高清不卡| 99热精品在线观看| 国产精品久久久久99| 欧美亚洲日本国产| 午夜久久久久久| 激情欧美一区二区三区在线观看| 久久亚洲一区二区三区四区| 久久综合激情| 日韩小视频在线观看专区| 亚洲激情自拍| 国产精品成人免费| 久久大综合网| 免费亚洲一区| 亚洲图片在线| 午夜免费日韩视频| 在线电影院国产精品| 亚洲国产精品成人久久综合一区| 欧美激情精品久久久久久黑人| 在线综合亚洲欧美在线视频| 亚洲欧美国产77777| 激情成人av| 亚洲精品中文字幕在线| 国产伦精品一区二区三区视频黑人 | 亚洲日本在线视频观看| 亚洲精品在线观| 国产精品伦子伦免费视频| 久久精品日韩| 欧美精品一卡| 久久精品系列| 欧美精品一区二区三区四区| 羞羞视频在线观看欧美| 麻豆乱码国产一区二区三区| 亚洲一区二区在线免费观看| 欧美亚洲综合另类| 日韩视频中午一区| 欧美在线视频日韩| 在线视频日本亚洲性| 欧美在线电影| 亚洲一级特黄| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲午夜影视影院在线观看| 亚洲精品影院| 亚洲精品一品区二品区三品区| 国产伦精品一区二区三区| 欧美激情中文字幕一区二区| 国产精品久久一卡二卡| 欧美成人自拍| 国产一区二区三区四区三区四| 91久久久久久| 影音先锋欧美精品| 亚洲综合导航| 亚洲五月婷婷| 欧美二区在线观看| 另类天堂av| 国产精品日韩精品欧美在线 | 亚洲一区二区视频在线| 蜜臀久久99精品久久久久久9 | 亚洲精品欧美| 国产综合香蕉五月婷在线| 亚洲无毛电影| 亚洲一区观看| 亚洲欧美日韩在线播放| 中文一区二区在线观看| 欧美成人激情视频免费观看| 裸体歌舞表演一区二区| 国产自产v一区二区三区c| 亚洲桃色在线一区| 亚洲综合99| 欧美小视频在线观看| 99re这里只有精品6| 日韩一区二区福利| 欧美韩日一区二区三区| 亚洲电影免费观看高清| 亚洲国产日韩欧美综合久久| 久久久久久九九九九| 久热精品视频在线观看一区| 黑人一区二区三区四区五区| 久久福利资源站| 免播放器亚洲一区| 亚洲国产美女精品久久久久∴| 久久一二三国产| 亚洲第一精品夜夜躁人人躁| 91久久久精品| 欧美日韩精品不卡| 亚洲午夜国产一区99re久久| 香蕉久久一区二区不卡无毒影院| 国产美女扒开尿口久久久| 亚洲欧美激情精品一区二区| 久久av一区二区三区漫画| 国产一区清纯| 另类综合日韩欧美亚洲| 亚洲国产欧美一区二区三区久久 | 国产视频在线一区二区| 先锋影音一区二区三区| 久久亚洲欧美| 日韩视频中文字幕| 国产精品欧美一区二区三区奶水| 欧美亚洲在线观看| 亚洲国产精品va在看黑人| 亚洲日本一区二区三区| 性娇小13――14欧美| 欧美激情aⅴ一区二区三区| 夜夜嗨av色综合久久久综合网| 亚洲欧美综合精品久久成人| 国内精品久久久久久久果冻传媒| 久久综合九色综合网站| 亚洲麻豆av| 久久久精品国产一区二区三区| 亚洲国产精品视频| 欧美日韩视频| 久久久精品动漫| 一本色道久久综合一区 | 欧美1区视频| 一区二区免费看| 精品成人国产在线观看男人呻吟| 欧美国产日韩一区二区三区| 亚洲欧美网站| 亚洲免费av片| 欧美成人精品激情在线观看 | 久久成人久久爱| 在线视频亚洲| 亚洲国产日韩欧美在线99 | 亚洲欧美福利一区二区| 在线观看视频日韩| 国产精品欧美一区二区三区奶水 | 精品成人国产| 国产免费观看久久| 欧美理论视频| 理论片一区二区在线| 欧美影院视频| 亚洲欧美日韩国产中文在线| 亚洲伦理在线观看| 亚洲国产精品一区二区久| 久久久成人精品| 午夜精品一区二区三区电影天堂|