c c++文件操作

#include<iostream>

#include<fstream>

using namespace std;

int main()

{

int i,index,lines;

char buffer[1024];

char FileName[256];

cout<<"pleast input filename";

cin>>FileName;

ifstream infile(FileName,ios::in);

if(infile.fail())

{

cout<<"打開文件<<FileName<<"失敗"<<endl;

cin.get();

cin.get();

return -1;

}

lines=0;

while(lines<10&&infile.geline(buffer,1024))

{

cout<<buffer;

lines++;

}

cin.get();

cin.get();

return 1;

}

c++文件操作:

#include<stdio.h>

typedefstruct {

  int level;/* fill/empty level of buffer */

  unsigned flags;        /* File status flags */charfd;/* File descriptor */

  unsigned charhold;/* Ungetc char if no buffer */intbsize;/* Buffer size */

  unsigned char_FAR *buffer;/* Data transfer buffer */

  unsigned char_FAR *curp;/* Current active pointer */

  unsigned istemp;      /* Temporary file indicator */shorttoken;/* Used for validity checking */

} FILE;

fopen() 打開流?

fclose() 關(guān)閉流?

fputc() 寫一個(gè)字符到流中?

fgetc() 從流中讀一個(gè)字符?

fseek() 在流中定位到指定的字符?

fputs() 寫字符串到流?

fgets() 從流中讀一行或指定個(gè)字符?

fprintf() 按格式輸出到流?

fscanf() 從流中按格式讀取?

feof() 到達(dá)文件尾時(shí)返回真值?

ferror() 發(fā)生錯(cuò)誤時(shí)返回其值?

rewind() 復(fù)位文件定位器到文件開始處?

remove() 刪除文件?

fread() 從流中讀指定個(gè)數(shù)的字符?

fwrite() 向流中寫指定個(gè)數(shù)的字符?

tmpfile() 生成一個(gè)臨時(shí)文件流?

tmpnam() 生成一個(gè)唯一的文件名



___________________________________________________________________________________________

FILE *fp;

if(fp=fopen("123.456","wb");

puts("打開文件成功");

else

puts(打開文件失敗");

fclose(fp);

fclose()的功能就是關(guān)閉用fopen()打開的文件,其原型是:int fclose(FILE *fp);如果成功,返回0,失敗返回EOF凑队。

在程序結(jié)束時(shí)一定要記得關(guān)閉打開的文件查库,不然可能會造成數(shù)據(jù)丟失的情況哼审,我以前就經(jīng)常犯這樣的毛病狰右。

fputs()

從流中讀一個(gè)字符错敢,原型是int fputc(FILE,*stream);成功返回這個(gè)字符痊臭,失敗返回EOF踩萎。

char ch1=fgetc(fp);

fseek()

fseek(fp,1234l,SEEK_CUR);把讀寫位置從當(dāng)前位置向后移動1234字節(jié)(L后綴表示長整數(shù))

fseek(fp,0l,2);把讀寫位置移動到文件尾

fputs()

寫一個(gè)字符串到流中

fputs("I LOVE YOU",fp);

fgets();

從流中讀一行或者指定的字符停局。

例:如果一個(gè)文件的當(dāng)前位置的文本如下

  Love ,I Have

  But ........

  如果用

  fgets(str1,4,file1);

  則執(zhí)行后str1="Lov",讀取了4-1=3個(gè)字符香府,而如果用

  fgets(str1,23,file1);

  則執(zhí)行str="Love ,I Have"董栽,讀取了一行(不包括行尾的'/n')。

8.fprintf()?

  按格式輸入到流企孩,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同锭碳,不過不是寫到控制臺,而是寫到流罷了

  例:fprintf(fp,"%2d%s",4,"Hahaha");

9.fscanf()?

  從流中按格式讀取勿璃,其原型是int fscanf(FILE *stream, const char *format[, address, ...]);其用法和scanf()相同擒抛,不過不是從控制臺讀取,而是從流讀取罷了补疑。

  例:fscanf(fp,"%d%d" ,&x,&y);

10.feof()?

  檢測是否已到文件尾歧沪,是返回真,否則返回0莲组,其原型是int feof(FILE *stream);

  例:if(feof(fp))printf("已到文件尾");

11.ferror()?

  原型是int ferror(FILE *stream);返回流最近的錯(cuò)誤代碼诊胞,可用clearerr()來清除它,clearerr()的原型是void clearerr(FILE *stream);

  例:printf("%d",ferror(fp));

rewind()

把當(dāng)前的讀寫位置回到文件開始锹杈,原型是void rewind(FILE *stream):其實(shí)本函數(shù)相當(dāng)于fseek(fp,0l,SEEK_SET);

remove()

刪除文件撵孤,原型是int remove(const char *filename):參數(shù)就是需要刪除的參數(shù)名;成功返回0竭望;

fread()

從流中讀指定的個(gè)數(shù)的字符邪码,原型就是 size_t fread(void *ptr,size_t size,size_t n,.FILE *stream);

char x[4230];?

FILE *file1=fopen("c://msdos.sys","r");?

fread(x,200,12 ,file1);//共讀取200*12=2400個(gè)字節(jié)

fwrite()

char x[]="i love you":

fwrite(x,6,12,fp):

將把"I Love"寫到流fp中12次,共72字節(jié)

16.tmpfile()?

其原型是FILE *tmpfile(void); 生成一個(gè)臨時(shí)文件咬清,以"w+b"的模式打開闭专,并返回這個(gè)臨時(shí)流的指針,如果失敗返回NULL枫振。在程序結(jié)束時(shí)喻圃,這個(gè)文件會被自動刪除。

例:FILE *fp=tmpfile();

17.tmpnam();?

其原型為char *tmpnam(char *s); 生成一個(gè)唯一的文件名粪滤,其實(shí)tmpfile()就調(diào)用了此函數(shù)斧拍,參數(shù)s用來保存得到的文件名,并返回這個(gè)指針杖小,如果失敗肆汹,返回NULL愚墓。

在c++中有一個(gè)fstream 類轉(zhuǎn)么用于文件操作

fstream file1:

file1.open("c://config.sys",ios::binary|ios::in);

fstream 有兩個(gè)子類,ifstream和ofstream

關(guān)閉文件則調(diào)用close函數(shù)就可以了昂勉。如file1.close();

讀寫數(shù)據(jù)塊:
unsigned char str1[]="I LOVE YOU ";

int n[5];

ifstream in("xxx,xxx");

ofstram out("yyy.yyy");

out.write(str1,strlen(str1));

in.read((unsign char*)n,sizeof(n));

in.close();

out.close();

檢測eof

if(in.eof())

5 文件定位?

file1.seekg(1234.ios::cur)//把文件的讀指針從當(dāng)前位置向后移1234個(gè)字節(jié)?

file2.seekp(1234,ios::beg);//把文件的寫指針從文件開頭向后移1234個(gè)字節(jié)

#include<iostream>

#include<fstream>

#include<string>

#include<vector>

using namesapce std;

int main()

{

fstream f("file.txt");

vector<string> words;

string line;

while(getline(f,line))

{
words.push_back(line);

}

for(int i=0;i<words.size;i++)

{

cout<<words[i]<<endl;

}

return 0;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浪册,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子岗照,更是在濱河造成了極大的恐慌村象,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件攒至,死亡現(xiàn)場離奇詭異厚者,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)迫吐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門库菲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人志膀,你說我怎么就攤上這事熙宇。” “怎么了溉浙?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵烫止,是天一觀的道長。 經(jīng)常有香客問我放航,道長烈拒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任广鳍,我火速辦了婚禮荆几,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赊时。我一直安慰自己吨铸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般辖源。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上房维,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音抬纸,去河邊找鬼咙俩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阿趁。 我是一名探鬼主播膜蛔,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脖阵!你這毒婦竟也來了皂股?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤命黔,失蹤者是張志新(化名)和其女友劉穎呜呐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纷铣,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卵史,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搜立。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡槐秧,死狀恐怖啄踊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刁标,我是刑警寧澤颠通,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站膀懈,受9級特大地震影響顿锰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜启搂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一硼控、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胳赌,春花似錦牢撼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捍掺,卻和暖如春撼短,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挺勿。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工曲横, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人满钟。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓胜榔,卻偏偏與公主長得像胳喷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子夭织,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354