锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
娉ㄦ剰錛?lt;sstream>浣跨敤string瀵硅薄鏉ヤ唬鏇垮瓧絎︽暟緇勩傝繖鏍峰彲浠ラ伩鍏嶇紦鍐插尯婧㈠嚭鐨勫嵄闄┿傝屼笖錛屼紶鍏ュ弬鏁板拰鐩爣瀵硅薄鐨勭被鍨嬭鑷姩鎺ㄥ鍑烘潵錛屽嵆浣夸嬌鐢ㄤ簡(jiǎn)涓嶆紜殑鏍煎紡鍖栫涔熸病鏈夊嵄闄┿?br>
紺轟緥1錛?br>
std::stringstream stream;
string result="10000";
int n = 0;
stream << result;
stream >> n;//n絳変簬10000
int鍒皊tring綾誨瀷鐨勮漿鎹?/strong>
string result;
int n = 12345;
stream << n;
result =stream.str();// result絳変簬"12345"
閲嶅鍒╃敤stringstream瀵硅薄
濡傛灉浣犳墦綆楀湪澶氭杞崲涓嬌鐢ㄥ悓涓涓猻tringstream瀵硅薄錛岃浣忓啀姣忔杞崲鍓嶈浣跨敤clear()鏂規(guī)硶錛屽湪澶氭杞崲涓噸澶嶄嬌鐢ㄥ悓涓涓猻tringstream錛堣屼笉鏄瘡嬈¢兘鍒涘緩涓涓柊鐨勫璞★級(jí)瀵硅薄鏈澶х殑濂藉鍦ㄤ簬鏁堢巼銆俿tringstream瀵硅薄鐨勬瀯閫犲拰鏋愭瀯鍑芥暟閫氬父鏄潪甯歌楄垂CPU鏃墮棿鐨勩傜粡璇曢獙錛屽崟鍗曚嬌鐢╟lear()騫朵笉鑳芥竻闄tringstream瀵硅薄鐨勫唴瀹癸紝浠呬粎鏄簡(jiǎn)璇ュ璞$殑鐘舵侊紝瑕侀噸澶嶄嬌鐢ㄥ悓涓涓猻tringstream瀵硅薄,闇瑕佷嬌鐢╯tr()閲嶆柊鍒濆鍖栬瀵硅薄銆?br>
紺轟緥2錛?br>
std::stringstream strsql;
for (int i= 1; i < 10; ++i)
{
strsql << "insert into test_tab values(";
strsql << i << ","<< (i+10) << ");";
std::string str = strsql.str(); // 寰楀埌string
res = sqlite3_exec(pDB,str.c_str(),0,0, &errMsg);
std::cout << strsql.str() << std::endl;
strsql.clear();
strsql.str("");
}
杞崲涓嬌鐢ㄦā鏉?/strong>
涔熷彲浠ヨ交鏉懼湴瀹氫箟鍑芥暟妯℃澘鏉ュ皢涓涓換鎰忕殑綾誨瀷杞崲鍒扮壒瀹氱殑鐩爣綾誨瀷銆備緥濡傦紝闇瑕佸皢鍚勭鏁板瓧鍊鹼紝濡俰nt銆乴ong銆乨ouble絳夌瓑杞崲鎴愬瓧絎︿覆錛岃浣跨敤浠ヤ竴涓猻tring綾誨瀷鍜屼竴涓換鎰忓?em> t 涓哄弬鏁扮殑to_string()鍑芥暟銆倀o_string()鍑芥暟灝?em> t 杞崲涓哄瓧絎︿覆騫跺啓鍏esult涓備嬌鐢╯tr()鎴愬憳鍑芥暟鏉ヨ幏鍙栨祦鍐呴儴緙撳啿鐨勪竴浠芥嫹璐濓細(xì)
紺轟緥3錛?br>
template<class T>
void to_string(string & result,const T& t)
{
ostringstream oss;//鍒涘緩涓涓祦
oss<<t;//鎶婂間紶閫掑嫻佷腑
result=oss.str();//鑾峰彇杞崲鍚庣殑瀛楃杞茍灝嗗叾鍐欏叆result
}
榪欐牱錛屼綘灝卞拰琛h交鏉懼湴灝嗗縐嶆暟鍊艱漿鎹㈡垚瀛楃涓蹭簡(jiǎn)錛?br>
to_string(s1,10.5);//double鍒皊tring
to_string(s2,123);//int鍒皊tring
to_string(s3,true);//bool鍒皊tring
鍙互鏇磋繘涓姝ュ畾涔変竴涓氱敤鐨勮漿鎹㈡ā鏉匡紝鐢ㄤ簬浠繪剰綾誨瀷涔嬮棿鐨勮漿鎹€傚嚱鏁版ā鏉縞onvert()鍚湁涓や釜妯℃澘鍙傛暟out_type鍜宨n_value錛屽姛鑳芥槸灝唅n_value鍊艱漿鎹㈡垚out_type綾誨瀷錛?br>
template<class out_type,class in_value>
out_type convert(const in_value & t)
{
stringstream stream;
stream<<t;//鍚戞祦涓紶鍊?br>
out_type result;//榪欓噷瀛樺偍杞崲緇撴灉
stream>>result;//鍚憆esult涓啓鍏ュ?br>
return result;
}
榪欐牱浣跨敤convert()錛?br>
double d;
string salary;
string s=”12.56”;
d=convert<double>(s);//d絳変簬12.56
salary=convert<string>(9000.0);//salary絳変簬”9000”
緇撹
鍦ㄨ繃鍘葷暀涓嬫潵鐨勭▼搴忎唬鐮佸拰綰補(bǔ)鐨凜紼嬪簭涓紝浼犵粺鐨?lt;stdio.h>褰㈠紡鐨勮漿鎹即闅忎簡(jiǎn)鎴戜滑寰堥暱鐨勪竴孌墊椂闂淬備絾鏄紝濡傛枃涓墍榪幫紝鍩轟簬stringstream鐨勮漿鎹㈡嫢鏈夌被鍨嬪畨鍏ㄥ拰涓嶄細(xì)婧㈠嚭榪欐牱鎶㈢溂鐨勭壒鎬э紝浣挎垜浠湁鍏呰凍寰楃悊鐢辨姏寮?lt;stdio.h>鑰屼嬌鐢?lt;sstream>銆?br>
褰撶劧鐜板湪榪樻湁涓涓洿濂界殑閫夋嫨錛岄偅灝辨槸浣跨敤boost搴撲腑鐨刲exical_cast,瀹冩槸綾誨瀷瀹夊叏鐨勮漿鎹€傚涓嬩緥錛?br>
#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <boost/lexical_cast.hpp>
using namespace std;
using namespace boost;
int main(void)
try{
//浠ヤ笅鏄唴緗被鍨嬪悜string杞崲鐨勮В鍐蟲(chóng)柟妗?/font>
//lexical_cast浼樺娍鏄庢樉
int ival;
char cval;
ostringstream out_string;
string str0;
string str1;
ival = 100;
cval = 'w';
out_string << ival << " " << cval;
str0 = out_string.str();
str1 = lexical_cast<string>(ival)
+ lexical_cast<string>(cval);
cout << str0 << endl;
cout << str1 << endl;
//浠ヤ笅鏄?/font>string鍚戝唴緗被鍨嬭漿鎹㈢殑瑙e喅鏂規(guī)
//鍑犱箮鍜?/font>stringstrem鐩告瘮錛宭exical_cast灝辨槸綾誨瀷瀹夊叏鐨勶紝
int itmpe;
char ctmpe;
str0 = "100k";
str1 = "100h";
istringstream in_string( str0 );
in_string >> itmpe >> ctmpe;
cout << itmpe << " " << ctmpe << endl;
itmpe = lexical_cast<int>(str1);
ctmpe = lexical_cast<char>(str1);
system( "PAUSE" );
return 0;
}
catch(bad_lexical_cast e)
{
cout << e.what() << endl;
cin.get();
}
]]>
鍦–++涓紝鏈変竴涓猻tream榪欎釜綾伙紝鎵鏈夌殑I/O閮戒互榪欎釜“嫻?#8221;綾諱負(fù)鍩虹鐨勶紝鍖呮嫭鎴戜滑瑕佽璇嗙殑鏂囦歡I/O錛宻tream榪欎釜綾繪湁涓や釜閲嶈鐨勮繍綆楃錛?
1銆佹彃鍏ュ櫒(<<)
鍚戞祦杈撳嚭鏁版嵁銆傛瘮濡傝緋葷粺鏈変竴涓粯璁ょ殑鏍囧噯杈撳嚭嫻?cout)錛屼竴鑸儏鍐典笅灝辨槸鎸囩殑鏄劇ず鍣紝鎵浠ワ紝cout<<"Write
Stdout"<<'\n';灝辮〃紺烘妸瀛楃涓?Write Stdout"鍜屾崲琛屽瓧絎?'\n')杈撳嚭鍒版爣鍑嗚緭鍑烘祦銆?
2銆佹瀽鍙栧櫒(>>)
浠庢祦涓緭鍏ユ暟鎹傛瘮濡傝緋葷粺鏈変竴涓粯璁ょ殑鏍囧噯杈撳叆嫻?cin)錛屼竴鑸儏鍐典笅灝辨槸鎸囩殑閿洏錛屾墍浠ワ紝cin>>x;灝辮〃紺轟粠鏍囧噯杈撳叆嫻佷腑璇誨彇涓涓寚瀹氱被鍨?鍗沖彉閲弜鐨勭被鍨?鐨勬暟鎹?
鍦–++涓紝瀵規(guī)枃浠剁殑鎿嶄綔鏄氳繃stream鐨勫瓙綾籪stream(file stream)鏉ュ疄鐜扮殑錛屾墍浠ワ紝瑕佺敤榪欑鏂瑰紡鎿嶄綔鏂囦歡錛屽氨蹇呴』鍔犲叆澶存枃浠秄stream.h銆備笅闈㈠氨鎶婃綾葷殑鏂囦歡鎿嶄綔榪囩▼涓涓閬撴潵銆?
涓銆佹墦寮鏂囦歡
鍦╢stream綾諱腑錛屾湁涓涓垚鍛樺嚱鏁皁pen()錛屽氨鏄敤鏉ユ墦寮鏂囦歡鐨勶紝鍏跺師鍨嬫槸錛?
void open(const char* filename,int mode,int access);
鍙傛暟錛?
filename錛氥銆瑕佹墦寮鐨勬枃浠跺悕
mode錛氥銆銆銆瑕佹墦寮鏂囦歡鐨勬柟寮?
access錛氥銆銆鎵撳紑鏂囦歡鐨勫睘鎬?
鎵撳紑鏂囦歡鐨勬柟寮忓湪綾籭os(鏄墍鏈夋祦寮廔/O綾葷殑鍩虹被)涓畾涔夛紝甯哥敤鐨勫煎涓嬶細(xì)
ios::app錛氥銆銆浠ヨ拷鍔犵殑鏂瑰紡鎵撳紑鏂囦歡
ios::ate錛氥銆銆鏂囦歡鎵撳紑鍚庡畾浣嶅埌鏂囦歡灝撅紝ios:app灝卞寘鍚湁姝ゅ睘鎬?
ios::binary錛?銆浠ヤ簩榪涘埗鏂瑰紡鎵撳紑鏂囦歡錛岀己鐪佺殑鏂瑰紡鏄枃鏈柟寮忋備袱縐嶆柟寮忕殑鍖哄埆瑙佸墠鏂?
ios::in錛氥銆銆 鏂囦歡浠ヨ緭鍏ユ柟寮忔墦寮
ios::out錛氥銆銆鏂囦歡浠ヨ緭鍑烘柟寮忔墦寮
ios::nocreate錛?涓嶅緩绔嬫枃浠訛紝鎵浠ユ枃浠朵笉瀛樺湪鏃舵墦寮澶辮觸銆
ios::noreplace錛氫笉瑕嗙洊鏂囦歡錛屾墍浠ユ墦寮鏂囦歡鏃跺鏋滄枃浠跺瓨鍦ㄥけ璐?
ios::trunc錛氥銆濡傛灉鏂囦歡瀛樺湪錛屾妸鏂囦歡闀垮害璁句負(fù)0
鍙互鐢?#8220;鎴?#8221;鎶婁互涓婂睘鎬ц繛鎺ヨ搗鏉ワ紝濡俰os::out|ios::binary
鎵撳紑鏂囦歡鐨勫睘鎬у彇鍊兼槸錛?
0錛氭櫘閫氭枃浠訛紝鎵撳紑璁塊棶
1錛氬彧璇繪枃浠?
2錛氶殣鍚枃浠?
4錛氱郴緇熸枃浠?
鍙互鐢?#8220;鎴?#8221;鎴栬?#8220;+”鎶婁互涓婂睘鎬ц繛鎺ヨ搗鏉?錛屽3鎴?|2灝辨槸浠ュ彧璇誨拰闅愬惈灞炴ф墦寮鏂囦歡銆?
渚嬪錛氫互浜岃繘鍒惰緭鍏ユ柟寮忔墦寮鏂囦歡c:\config.sys
fstream file1;
file1.open("c:\\config.sys",ios::binary|ios::in,0);
濡傛灉open鍑芥暟鍙湁鏂囦歡鍚嶄竴涓弬鏁幫紝鍒欐槸浠ヨ/鍐欐櫘閫氭枃浠舵墦寮錛屽嵆錛?
file1.open("c:\\config.sys");<=>file1.open("c:\\config.sys",ios::in|ios::out,0);
鍙﹀錛宖stream榪樻湁鍜宱pen()涓鏍風(fēng)殑鏋勯犲嚱鏁幫紝瀵逛簬涓婁緥錛屽湪瀹氫箟鐨勬椂渚氨鍙互鎵撳紑鏂囦歡浜?jiǎn)锛?xì)
fstream file1("c:\\config.sys");
鐗瑰埆鎻愬嚭鐨勬槸錛宖stream鏈変袱涓瓙綾伙細(xì)ifstream(input file stream)鍜宱fstream(outpu file stream)錛宨fstream榛樿浠ヨ緭鍏ユ柟寮忔墦寮鏂囦歡錛岃宱fstream榛樿浠ヨ緭鍑烘柟寮忔墦寮鏂囦歡銆?
ifstream file2("c:\\pdos.def");//浠ヨ緭鍏ユ柟寮忔墦寮鏂囦歡
ofstream file3("c:\\x.123");//浠ヨ緭鍑烘柟寮忔墦寮鏂囦歡
鎵浠ワ紝鍦ㄥ疄闄呭簲鐢ㄤ腑錛屾牴鎹渶瑕佺殑涓嶅悓錛岄夋嫨涓嶅悓鐨勭被鏉ュ畾涔夛細(xì)濡傛灉鎯充互杈撳叆鏂瑰紡鎵撳紑錛屽氨鐢╥fstream鏉ュ畾涔夛紱濡傛灉鎯充互杈撳嚭鏂瑰紡鎵撳紑錛屽氨鐢╫fstream鏉ュ畾涔夛紱濡傛灉鎯充互杈撳叆/杈撳嚭鏂瑰紡鏉ユ墦寮錛屽氨鐢╢stream鏉ュ畾涔夈?
浜屻佸叧闂枃浠?
鎵撳紑鐨勬枃浠朵嬌鐢ㄥ畬鎴愬悗涓瀹氳鍏抽棴錛宖stream鎻愪緵浜?jiǎn)鎴愬憳鍑芥暟close()鏉ュ畬鎴愭鎿嶄綔錛屽錛歠ile1.close();灝辨妸file1鐩歌繛鐨勬枃浠跺叧闂?
涓夈佽鍐欐枃浠?
璇誨啓鏂囦歡鍒嗕負(fù)鏂囨湰鏂囦歡鍜屼簩榪涘埗鏂囦歡鐨勮鍙栵紝瀵逛簬鏂囨湰鏂囦歡鐨勮鍙栨瘮杈冪畝鍗曪紝鐢ㄦ彃鍏ュ櫒鍜屾瀽鍙栧櫒灝卞彲浠ヤ簡(jiǎn)錛涜屽浜庝簩榪涘埗鐨勮鍙栧氨瑕佸鏉備簺錛屼笅瑕佸氨璇︾粏鐨勪粙緇嶈繖涓ょ鏂瑰紡
1銆佹枃鏈枃浠剁殑璇誨啓
鏂囨湰鏂囦歡鐨勮鍐欏緢綆鍗曪細(xì)鐢ㄦ彃鍏ュ櫒(<<)鍚戞枃浠惰緭鍑猴紱鐢ㄦ瀽鍙栧櫒(>>)浠庢枃浠惰緭鍏ャ傚亣璁緁ile1鏄互杈撳叆鏂瑰紡鎵撳紑錛宖ile2浠ヨ緭鍑烘墦寮銆傜ず渚嬪涓嬶細(xì)
file2<<"I Love You";//鍚戞枃浠跺啓鍏ュ瓧絎︿覆"I Love You"
int i;
file1>>i;//浠庢枃浠惰緭鍏ヤ竴涓暣鏁板箋?
榪欑鏂瑰紡榪樻湁涓縐嶇畝鍗曠殑鏍煎紡鍖栬兘鍔涳紝姣斿鍙互鎸囧畾杈撳嚭涓?6榪涘埗絳夌瓑錛屽叿浣撶殑鏍煎紡鏈変互涓嬩竴浜?
鎿嶇旱絎?鍔熻兘 杈撳叆/杈撳嚭
dec 鏍煎紡鍖栦負(fù)鍗佽繘鍒舵暟鍊兼暟鎹?杈撳叆鍜岃緭鍑?
endl 杈撳嚭涓涓崲琛岀騫跺埛鏂版嫻?杈撳嚭
ends 杈撳嚭涓涓┖瀛楃 杈撳嚭
hex 鏍煎紡鍖栦負(fù)鍗佸叚榪涘埗鏁板兼暟鎹?杈撳叆鍜岃緭鍑?
oct 鏍煎紡鍖栦負(fù)鍏繘鍒舵暟鍊兼暟鎹?杈撳叆鍜岃緭鍑?
setpxecision(int p) 璁劇疆?huà)巩鐐规暟鐨劸_懼害浣嶆暟 杈撳嚭
姣斿瑕佹妸123褰撲綔鍗佸叚榪涘埗杈撳嚭錛歠ile1<<<123;瑕佹妸3.1415926浠?浣嶇簿搴﹁緭鍑猴細(xì)FILE1<
2銆佷簩榪涘埗鏂囦歡鐨勮鍐?
鈶爌ut()
put()鍑芥暟鍚戞祦鍐欏叆涓涓瓧絎︼紝鍏跺師鍨嬫槸ofstream &put(char ch)錛屼嬌鐢ㄤ篃姣旇緝綆鍗曪紝濡俧ile1.put('c');灝辨槸鍚戞祦鍐欎竴涓瓧絎?c'銆?
鈶et()
get()鍑芥暟姣旇緝鐏墊椿錛屾湁3縐嶅父鐢ㄧ殑閲嶈澆褰㈠紡錛?
涓縐嶅氨鏄拰put()瀵瑰簲鐨勫艦寮忥細(xì)ifstream &get(char &ch);鍔熻兘鏄粠嫻佷腑璇誨彇涓涓瓧絎︼紝緇撴灉淇濆瓨鍦ㄥ紩鐢╟h涓紝濡傛灉鍒版枃浠跺熬錛岃繑鍥炵┖瀛楃銆傚file2.get(x);琛ㄧず浠庢枃浠朵腑璇誨彇涓涓瓧絎︼紝騫舵妸璇誨彇鐨勫瓧絎︿繚瀛樺湪x涓?
鍙︿竴縐嶉噸杞藉艦寮忕殑鍘熷瀷鏄細(xì) int get();榪欑褰㈠紡鏄粠嫻佷腑榪斿洖涓涓瓧絎︼紝濡傛灉鍒拌揪鏂囦歡灝撅紝榪斿洖EOF錛屽x=file2.get();鍜屼笂渚嬪姛鑳芥槸涓鏍風(fēng)殑銆?
榪樻湁涓縐嶅艦寮忕殑鍘熷瀷鏄細(xì)ifstream &get(char *buf,int num,char
delim='\n')錛涜繖縐嶅艦寮忔妸瀛楃璇誨叆鐢?buf 鎸囧悜鐨勬暟緇勶紝鐩村埌璇誨叆浜?num 涓瓧絎︽垨閬囧埌浜?jiǎn)鐢?delim 鎸囧畾鐨勫瓧絎︼紝濡傛灉娌′嬌鐢?
delim 榪欎釜鍙傛暟錛屽皢浣跨敤緙虹渷鍊兼崲琛岀'\n'銆備緥濡傦細(xì)
file2.get(str1,127,'A');//浠庢枃浠朵腑璇誨彇瀛楃鍒板瓧絎︿覆str1錛屽綋閬囧埌瀛楃'A'鎴栬鍙栦簡(jiǎn)127涓瓧絎︽椂緇堟銆?
鈶㈣鍐欐暟鎹潡
瑕佽鍐欎簩榪涘埗鏁版嵁鍧楋紝浣跨敤鎴愬憳鍑芥暟read()鍜寃rite()鎴愬憳鍑芥暟錛屽畠浠師鍨嬪涓嬶細(xì)
read(unsigned char *buf,int num);
write(const unsigned char *buf,int num);
read()浠庢枃浠朵腑璇誨彇 num 涓瓧絎﹀埌 buf 鎸囧悜鐨勭紦瀛樹(shù)腑錛屽鏋滃湪榪樻湭璇誨叆 num 涓瓧絎︽椂灝卞埌浜?jiǎn)鏂囦欢灏惧Q屽彲浠ョ敤鎴愬憳鍑芥暟 int
gcount();鏉ュ彇寰楀疄闄呰鍙栫殑瀛楃鏁幫紱鑰?write() 浠巄uf 鎸囧悜鐨勭紦瀛樺啓 num 涓瓧絎﹀埌鏂囦歡涓紝鍊煎緱娉ㄦ剰鐨勬槸緙撳瓨鐨勭被鍨嬫槸
unsigned char *錛屾湁鏃跺彲鑳介渶瑕佺被鍨嬭漿鎹€?
渚嬶細(xì)
unsigned char str1[]="I Love You";
int n[5];
ifstream in("xxx.xxx");
ofstream out("yyy.yyy");
out.write(str1,strlen(str1));//鎶婂瓧絎︿覆str1鍏ㄩ儴鍐欏埌yyy.yyy涓?
in.read((unsigned char*)n,sizeof(n));//浠巟xx.xxx涓鍙栨寚瀹氫釜鏁存暟錛屾敞鎰忕被鍨嬭漿鎹?
in.close();out.close();
鍥涖佹嫻婨OF
鎴愬憳鍑芥暟eof()鐢ㄦ潵媯(gè)嫻嬫槸鍚﹀埌杈炬枃浠跺熬錛屽鏋滃埌杈炬枃浠跺熬榪斿洖闈?鍊鹼紝鍚﹀垯榪斿洖0銆傚師鍨嬫槸int eof();
渚嬶細(xì)銆銆if(in.eof())ShowMessage("宸茬粡鍒拌揪鏂囦歡灝撅紒");
浜斻佹枃浠跺畾浣?
鍜孋鐨勬枃浠舵搷浣滄柟寮忎笉鍚岀殑鏄紝C++
I/O緋葷粺綆$悊涓や釜涓庝竴涓枃浠剁浉鑱旂郴鐨勬寚閽堛備竴涓槸璇繪寚閽堬紝瀹冭鏄庤緭鍏ユ搷浣滃湪鏂囦歡涓殑浣嶇疆錛涘彟涓涓槸鍐欐寚閽堬紝瀹冧笅嬈″啓鎿嶄綔鐨勪綅緗傛瘡嬈℃墽琛岃緭鍏ユ垨杈撳嚭鏃訛紝
鐩稿簲鐨勬寚閽堣嚜鍔ㄥ彉鍖栥傛墍浠ワ紝C++鐨勬枃浠跺畾浣嶅垎涓鴻浣嶇疆鍜屽啓浣嶇疆鐨勫畾浣嶏紝瀵瑰簲鐨勬垚鍛樺嚱鏁版槸 seekg()鍜?
seekp()錛宻eekg()鏄緗浣嶇疆錛宻eekp鏄緗啓浣嶇疆銆傚畠浠渶閫氱敤鐨勫艦寮忓涓嬶細(xì)
istream &seekg(streamoff offset,seek_dir origin);
ostream &seekp(streamoff offset,seek_dir origin);
streamoff瀹氫箟浜?iostream.h 涓紝瀹氫箟鏈夊亸縐婚噺 offset 鎵鑳藉彇寰楃殑鏈澶у鹼紝seek_dir 琛ㄧず縐誨姩鐨勫熀鍑嗕綅緗紝鏄竴涓湁浠ヤ笅鍊肩殑鏋氫婦錛?
ios::beg錛氥銆鏂囦歡寮澶?
ios::cur錛氥銆鏂囦歡褰撳墠浣嶇疆
ios::end錛氥銆鏂囦歡緇撳熬
榪欎袱涓嚱鏁頒竴鑸敤浜庝簩榪涘埗鏂囦歡錛屽洜涓烘枃鏈枃浠朵細(xì)鍥犱負(fù)緋葷粺瀵瑰瓧絎︾殑瑙i噴鑰屽彲鑳戒笌棰勬兂鐨勫間笉鍚屻?
渚嬶細(xì)
file1.seekg(1234,ios::cur);//鎶婃枃浠剁殑璇繪寚閽堜粠褰撳墠浣嶇疆鍚戝悗縐?234涓瓧鑺?
file2.seekp(1234,ios::beg);//鎶婃枃浠剁殑鍐欐寚閽堜粠鏂囦歡寮澶村悜鍚庣Щ1234涓瓧鑺?/setpxecision(5)>
鍩轟簬C鐨勬枃浠舵搷浣?/strong>
銆銆鍦ˋNSI C涓紝瀵規(guī)枃浠剁殑鎿嶄綔鍒嗕負(fù)涓ょ鏂瑰紡錛屽嵆嫻佸紡鏂囦歡鎿嶄綔鍜孖/O鏂囦歡鎿嶄綔錛屼笅闈㈠氨鍒嗗埆浠嬬粛涔嬨?/font>
涓銆佹祦寮忔枃浠舵搷浣?br> 榪欑鏂瑰紡鐨勬枃浠舵搷浣滄湁涓涓噸瑕佺殑緇撴瀯FILE錛孎ILE鍦╯tdio.h涓畾涔夊涓嬶細(xì)
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
銆銆FILE榪欎釜緇撴瀯鍖呭惈浜?jiǎn)鏂囦欢鎿嶄綔鐨勫熀鏈睘鎬э紝瀵規(guī)枃浠剁殑鎿嶄綔閮借閫氳繃榪欎釜緇撴瀯鐨勬寚閽堟潵榪涜錛屾縐嶆枃浠舵搷浣滃父鐢ㄧ殑鍑芥暟瑙佷笅琛?鍑芥暟 鍔熻兘
fopen() 鎵撳紑嫻?
fclose() 鍏抽棴嫻?
fputc() 鍐欎竴涓瓧絎﹀埌嫻佷腑
fgetc() 浠庢祦涓涓涓瓧絎?
fseek() 鍦ㄦ祦涓畾浣嶅埌鎸囧畾鐨勫瓧絎?
fputs() 鍐欏瓧絎︿覆鍒版祦
fgets() 浠庢祦涓涓琛屾垨鎸囧畾涓瓧絎?
fprintf() 鎸夋牸寮忚緭鍑哄埌嫻?
fscanf() 浠庢祦涓寜鏍煎紡璇誨彇
feof() 鍒拌揪鏂囦歡灝炬椂榪斿洖鐪熷?
ferror() 鍙戠敓閿欒鏃惰繑鍥炲叾鍊?
rewind() 澶嶄綅鏂囦歡瀹氫綅鍣ㄥ埌鏂囦歡寮濮嬪
remove() 鍒犻櫎鏂囦歡
fread() 浠庢祦涓鎸囧畾涓暟鐨勫瓧絎?
fwrite() 鍚戞祦涓啓鎸囧畾涓暟鐨勫瓧絎?
tmpfile() 鐢熸垚涓涓復(fù)鏃舵枃浠舵祦
tmpnam() 鐢熸垚涓涓敮涓鐨勬枃浠跺悕
涓嬮潰灝變粙緇嶄竴涓嬭繖浜涘嚱鏁?/font>
1.fopen()
fopen鐨勫師鍨嬫槸錛欶ILE *fopen(const char *filename,const char *mode)錛宖open瀹炵幇涓変釜鍔熻兘
涓轟嬌鐢ㄨ屾墦寮涓涓祦
鎶婁竴涓枃浠跺拰姝ゆ祦鐩歌繛鎺?
緇欐嫻佽繑鍥炰竴涓狥ILR鎸囬拡
鍙傛暟filename鎸囧悜瑕佹墦寮鐨勬枃浠跺悕錛宮ode琛ㄧず鎵撳紑鐘舵佺殑瀛楃涓詫紝鍏跺彇鍊煎涓嬭〃
瀛楃涓?鍚箟
"r" 浠ュ彧璇繪柟寮忔墦寮鏂囦歡
"w" 浠ュ彧鍐欐柟寮忔墦寮鏂囦歡
"a" 浠ヨ拷鍔犳柟寮忔墦寮鏂囦歡
"r+" 浠ヨ/鍐欐柟寮忔墦寮鏂囦歡錛屽鏃犳枃浠跺嚭閿?
"w+" 浠ヨ/鍐欐柟寮忔墦寮鏂囦歡錛屽鏃犳枃浠剁敓鎴愭柊鏂囦歡
銆銆涓涓枃浠跺彲浠ヤ互鏂囨湰妯″紡鎴栦簩榪涘埗妯″紡鎵撳紑錛岃繖涓ょ鐨勫尯鍒槸錛氬湪鏂囨湰妯″紡涓洖杞﹁褰撴垚涓涓瓧絎? ''\n''錛岃屼簩榪涘埗妯″紡璁や負(fù)瀹冩槸涓や釜瀛楃0x0D,0x0A錛涘鏋滃湪鏂囦歡涓鍒?x1B錛屾枃鏈ā寮忎細(xì)璁や負(fù)榪欐槸鏂囦歡緇撴潫絎︼紝涔熷氨鏄簩榪涘埗妯″瀷涓嶄細(xì)瀵規(guī)枃浠? 榪涜澶勭悊錛岃屾枃鏈柟寮忎細(xì)鎸変竴瀹氱殑鏂瑰紡瀵規(guī)暟鎹綔鐩稿簲鐨勮漿鎹€?/font>
銆銆緋葷粺榛樿鐨勬槸浠ユ枃鏈ā寮忔墦寮錛屽彲浠ヤ慨鏀瑰叏閮ㄥ彉閲廮fmode鐨勫兼潵淇敼榪欎釜璁劇疆錛屼緥濡俖fmode=O_TEXT錛涘氨璁劇疆榛樿鎵撳紑鏂瑰紡涓烘枃鏈ā寮忥紱鑰宊fmode=O_BINARY錛涘垯璁劇疆榛樿鎵撳紑鏂瑰紡鏄簩榪涘埗妯″紡銆?/font>
銆銆鎴戜滑涔熷彲浠ュ湪妯″紡瀛楃涓蹭腑鎸囧畾鎵撳紑鐨勬ā寮忥紝濡?rb"琛ㄧず浠ヤ簩榪涘埗妯″紡鎵撳紑鍙鏂囦歡錛?w+t"鎴?wt+"琛ㄧず浠ユ枃鏈ā寮忔墦寮璇?鍐欐枃浠躲?/font>
銆銆姝ゅ嚱鏁拌繑鍥炰竴涓狥ILE鎸囬拡錛屾墍浠ョ敵鏄庝竴涓狥ILE鎸囬拡鍚庝笉鐢ㄥ垵濮嬪寲錛岃屾槸鐢╢open()鏉ヨ繑鍥炰竴涓寚閽堝茍涓庝竴涓壒瀹氱殑鏂囦歡鐩歌繛錛屽鏋滄垚璐ワ紝榪斿洖NULL銆?/font>
渚?
銆銆FILE *fp;
if(fp=fopen("123.456","wb"))
puts("鎵撳紑鏂囦歡鎴愬姛");
else
puts("鎵撳紑鏂囦歡鎴愯觸");
2.fclose()
fclose()鐨勫姛鑳藉氨鏄叧闂敤fopen()鎵撳紑鐨勬枃浠訛紝鍏跺師鍨嬫槸錛歩nt fclose(FILE *fp);濡傛灉鎴愬姛錛岃繑鍥?,澶辮觸榪斿洖EOF銆?/font>
銆銆鍦ㄧ▼搴忕粨鏉熸椂涓瀹氳璁板緱鍏抽棴鎵撳紑鐨勬枃浠訛紝涓嶇劧鍙兘浼?xì)閫犳垚鏁版嵁涓㈠け鐨勬儏鍐碉紝鎴戜互鍓嶅氨緇忓父鐘繖鏍風(fēng)殑姣涚梾銆?/font>
渚嬶細(xì)fclose(fp);
3.fputc()
鍚戞祦鍐欎竴涓瓧絎︼紝鍘熷瀷鏄痠nt fputc(int c, FILE *stream); 鎴愬姛榪斿洖榪欎釜瀛楃,澶辮觸榪斿洖EOF銆?/font>
渚嬶細(xì)fputc(''X'',fp);
4.fgetc()
浠庢祦涓涓涓瓧絎︼紝鍘熷瀷鏄痠nt fputc(FILE *stream); 鎴愬姛榪斿洖榪欎釜瀛楃,澶辮觸榪斿洖EOF銆?/font>
渚嬶細(xì)char ch1=fgetc(fp);
5. fseek()
姝ゅ嚱鏁頒竴鑸敤浜庝簩榪涘埗妯″紡鎵撳紑鐨勬枃浠朵腑錛屽姛鑳芥槸瀹氫綅鍒版祦涓寚瀹氱殑浣嶇疆錛屽師鍨嬫槸int fseek(FILE *stream, long offset, int whence);濡傛灉鎴愬姛榪斿洖0錛屽弬鏁皁ffset鏄Щ鍔ㄧ殑瀛楃鏁幫紝whence鏄Щ鍔ㄧ殑鍩哄噯錛屽彇鍊兼槸
絎﹀彿甯擱噺 鍊?鍩哄噯浣嶇疆
SEEK_SET 0 鏂囦歡寮澶?
SEEK_CUR 1 褰撳墠璇誨啓鐨勪綅緗?
SEEK_END 2 鏂囦歡灝鵑儴
渚嬶細(xì)fseek(fp,1234L,SEEK_CUR);//鎶婅鍐欎綅緗粠褰撳墠浣嶇疆鍚戝悗縐誨姩1234瀛楄妭(L鍚庣紑琛ㄧず闀挎暣鏁?
銆銆fseek(fp,0L,2);//鎶婅鍐欎綅緗Щ鍔ㄥ埌鏂囦歡灝?/font>
6.fputs()
鍐欎竴涓瓧絎︿覆鍒版祦涓紝鍘熷瀷int fputs(const char *s, FILE *stream);
渚嬶細(xì)fputs("I Love You",fp);
7.fgets()
浠庢祦涓涓琛屾垨鎸囧畾涓瓧絎︼紝鍘熷瀷鏄痗har *fgets(char *s, int n, FILE *stream); 浠庢祦涓鍙杗-1涓瓧絎︼紝闄ら潪璇誨畬涓琛岋紝鍙傛暟s鏄潵鎺ユ敹瀛楃涓詫紝濡傛灉鎴愬姛鍒欒繑鍥瀞鐨勬寚閽堬紝鍚﹀垯榪斿洖NULL銆?/font>
渚嬶細(xì)濡傛灉涓涓枃浠剁殑褰撳墠浣嶇疆鐨勬枃鏈涓?/font>
Love ,I Have
But ……..
濡傛灉鐢?/font>
銆銆fgets(str1,4,file1);
鍒欐墽琛屽悗str1="Lov"錛岃鍙栦簡(jiǎn)4-1=3涓瓧絎︼紝鑰屽鏋滅敤
銆銆fgets(str1,23,file1);
鍒欐墽琛宻tr="Love ,I Have"錛岃鍙栦簡(jiǎn)涓琛?涓嶅寘鎷灝劇殑''\n'')銆?/font>
8.fprintf()
鎸夋牸寮忚緭鍏ュ埌嫻侊紝鍏跺師鍨嬫槸int fprintf(FILE *stream, const char *format[, argument, …]);鍏剁敤娉曞拰printf()鐩稿悓錛屼笉榪囦笉鏄啓鍒版帶鍒跺彴錛岃屾槸鍐欏埌嫻佺艦浜?/font>
渚嬶細(xì)fprintf(fp,"%2d%s",4,"Hahaha");
9.fscanf()
浠庢祦涓寜鏍煎紡璇誨彇錛屽叾鍘熷瀷鏄痠nt fscanf(FILE *stream, const char *format[, address, …]);鍏剁敤娉曞拰scanf()鐩稿悓錛屼笉榪囦笉鏄粠鎺у埗鍙拌鍙栵紝鑰屾槸浠庢祦璇誨彇緗簡(jiǎn)銆?/font>
渚嬶細(xì)fscanf(fp,"%d%d" ,&x,&y);
10.feof()
媯(gè)嫻嬫槸鍚﹀凡鍒版枃浠跺熬錛屾槸榪斿洖鐪燂紝鍚﹀垯榪斿洖0錛屽叾鍘熷瀷鏄痠nt feof(FILE *stream);
渚嬶細(xì)if(feof(fp))printf("宸插埌鏂囦歡灝?);
11.ferror()
鍘熷瀷鏄痠nt ferror(FILE *stream);榪斿洖嫻佹渶榪戠殑閿欒浠g爜錛屽彲鐢╟learerr()鏉ユ竻闄ゅ畠錛宑learerr()鐨勫師鍨嬫槸void clearerr(FILE *stream);
渚嬶細(xì)printf("%d",ferror(fp));
12.rewind()
鎶婂綋鍓嶇殑璇誨啓浣嶇疆鍥炲埌鏂囦歡寮濮嬶紝鍘熷瀷鏄痸oid rewind(FILE *stream);鍏跺疄鏈嚱鏁扮浉褰撲簬fseek(fp,0L,SEEK_SET);
渚嬶細(xì)rewind(fp);
12.remove()
鍒犻櫎鏂囦歡錛屽師鍨嬫槸int remove(const char *filename); 鍙傛暟灝辨槸瑕佸垹闄ょ殑鏂囦歡鍚嶏紝鎴愬姛榪斿洖0銆?/font>
渚嬶細(xì)remove("c:\\io.sys");
13.fread()
浠庢祦涓鎸囧畾涓暟鐨勫瓧絎︼紝鍘熷瀷鏄痵ize_t fread(void *ptr, size_t size, size_t n, FILE
*stream);鍙傛暟ptr鏄繚瀛樿鍙栫殑鏁版嵁錛寁oid*鐨勬寚閽堝彲鐢ㄤ換浣曠被鍨嬬殑鎸囬拡鏉ユ浛鎹紝濡俢har*銆乮nt
*絳夌瓑鏉ユ浛鎹紱size鏄瘡鍧楃殑瀛楄妭鏁幫紱n鏄鍙栫殑鍧楁暟錛屽鏋滄垚鍔燂紝榪斿洖瀹為檯璇誨彇鐨勫潡鏁?涓嶆槸瀛楄妭鏁?錛屾湰鍑芥暟涓鑸敤浜庝簩榪涘埗妯″紡鎵撳紑鐨勬枃浠朵腑銆?/font>
渚嬶細(xì)
銆銆char x[4230];
FILE *file1=fopen("c:\\msdos.sys","r");
fread(x,200,12 ,file1);//鍏辮鍙?00*12=2400涓瓧鑺?/font>
14.fwrite()
涓巉read瀵瑰簲錛屽悜嫻佷腑鍐欐寚瀹氱殑鏁版嵁錛屽師鍨嬫槸size_t fwrite(const void *ptr, size_t size,
size_t n, FILE *stream);鍙傛暟ptr鏄鍐欏叆鐨勬暟鎹寚閽堬紝void*鐨勬寚閽堝彲鐢ㄤ換浣曠被鍨嬬殑鎸囬拡鏉ユ浛鎹紝濡俢har*銆乮nt
*絳夌瓑鏉ユ浛鎹紱size鏄瘡鍧楃殑瀛楄妭鏁幫紱n鏄鍐欑殑鍧楁暟錛屽鏋滄垚鍔燂紝榪斿洖瀹為檯鍐欏叆鐨勫潡鏁?涓嶆槸瀛楄妭鏁?錛屾湰鍑芥暟涓鑸敤浜庝簩榪涘埗妯″紡鎵撳紑鐨勬枃浠朵腑銆?/font>
渚嬶細(xì)
銆銆char x[]="I Love You";
fwire(x, 6,12,fp);//鍐欏叆6*12=72瀛楄妭
銆銆灝嗘妸"I Love"鍐欏埌嫻乫p涓?2嬈★紝鍏?2瀛楄妭
15.tmpfile()
鍏跺師鍨嬫槸FILE *tmpfile(void); 鐢熸垚涓涓復(fù)鏃舵枃浠訛紝浠?w+b"鐨勬ā寮忔墦寮錛屽茍榪斿洖榪欎釜涓存椂嫻佺殑鎸囬拡錛屽鏋滃け璐ヨ繑鍥濶ULL銆傚湪紼嬪簭緇撴潫鏃訛紝榪欎釜鏂囦歡浼?xì)琚嚜鍔ㄥ垹闄ゃ?/font>
渚嬶細(xì)FILE *fp=tmpfile();
16.tmpnam();
鍏跺師鍨嬩負(fù)char *tmpnam(char *s); 鐢熸垚涓涓敮涓鐨勬枃浠跺悕錛屽叾瀹瀟mpfile()灝辮皟鐢ㄤ簡(jiǎn)姝ゅ嚱鏁幫紝鍙傛暟s鐢ㄦ潵淇濆瓨寰楀埌鐨勬枃浠跺悕錛屽茍榪斿洖榪欎釜鎸囬拡錛屽鏋滃け璐ワ紝榪斿洖NULL銆?/font>
渚嬶細(xì)tmpnam(str1);
浜屻佺洿鎺/O鏂囦歡鎿嶄綔
榪欐槸C鎻愪緵鐨勫彟涓縐嶆枃浠舵搷浣滐紝瀹冩槸閫氳繃鐩存帴瀛?鍙栨枃浠舵潵瀹屾垚瀵規(guī)枃浠剁殑澶勭悊錛岃屼笂綃囨墍璇存祦寮忔枃浠舵搷浣滄槸閫氳繃緙撳啿鍖烘潵榪涜錛涙祦寮忔枃浠舵搷浣滄槸鍥寸粫涓涓?
FILE鎸囬拡鏉ヨ繘琛岋紝鑰屾綾繪枃浠舵搷浣滄槸鍥寸粫涓涓枃浠剁殑“鍙ユ焺”鏉ヨ繘琛岋紝浠涔堟槸鍙ユ焺鍛紵瀹冩槸涓涓暣鏁幫紝鏄郴緇熺敤鏉ユ爣璇嗕竴涓枃浠?鍦╓INDOWS涓紝鍙ユ焺鐨?
姒傚康鎵╁睍鍒版墍鏈夎澶囪祫婧愮殑鏍囪瘑)鐨勫敮涓鐨勮鍙楓傛綾繪枃浠舵搷浣滃父鐢ㄧ殑鍑芥暟濡備笅琛紝榪欎簺鍑芥暟鍙?qiáng)鍏舵墍鐢ㄧ殑涓浜涚鍙峰湪io.h鍜宖cntl.h涓畾涔夛紝鍦ㄤ嬌鐢ㄦ椂瑕?
鍔犲叆鐩稿簲鐨勫ご鏂囦歡銆?/font>
鍑芥暟 璇存槑
open() 鎵撳紑涓涓枃浠跺茍榪斿洖瀹冪殑鍙ユ焺
close() 鍏抽棴涓涓彞鏌?
lseek() 瀹氫綅鍒版枃浠剁殑鎸囧畾浣嶇疆
read() 鍧楄鏂囦歡
write() 鍧楀啓鏂囦歡
eof() 嫻嬭瘯鏂囦歡鏄惁緇撴潫
filelength() 鍙栧緱鏂囦歡闀垮害
rename() 閲嶅懡鍚嶆枃浠?
chsize() 鏀瑰彉鏂囦歡闀垮害
銆銆涓嬮潰灝卞榪欎簺鍑芥暟涓涓璇存槑錛?/font>
1.open()
鎵撳紑涓涓枃浠跺茍榪斿洖瀹冪殑鍙ユ焺錛屽鏋滃け璐ワ紝灝嗚繑鍥炰竴涓皬浜?鐨勫鹼紝鍘熷瀷鏄痠nt open(const char *path, int
access [, unsigned mode]);
鍙傛暟path鏄鎵撳紑鐨勬枃浠跺悕錛宎ccess鏄墦寮鐨勬ā寮忥紝mode鏄彲閫夐」銆傝〃紺烘枃浠剁殑灞炴э紝涓昏鐢ㄤ簬UNIX緋葷粺涓紝鍦―OS/WINDOWS榪欎釜鍙?
鏁版病鏈夋剰涔夈傚叾涓枃浠剁殑鎵撳紑妯″紡濡備笅琛ㄣ?/font>
絎﹀彿 鍚箟 絎﹀彿 鍚箟 絎﹀彿 鍚箟
O_RDONLY 鍙鏂瑰紡 O_WRONLY 鍙啓鏂瑰紡 O_RDWR 璇?鍐欐柟寮?
O_NDELAY 鐢ㄤ簬UNIX緋葷粺 O_APPEND 榪藉姞鏂瑰紡 O_CREAT 濡傛灉鏂囦歡涓嶅瓨鍦ㄥ氨鍒涘緩
O_TRUNC 鎶婃枃浠墮暱搴︽埅涓? O_EXCL 鍜孫_CREAT榪炵敤錛屽鏋滄枃浠跺瓨鍦ㄨ繑鍥為敊璇?O_BINARY 浜岃繘鍒舵柟寮?
O_TEXT 鏂囨湰鏂瑰紡
銆銆瀵逛簬澶氫釜瑕佹眰錛屽彲浠ョ敤"|"榪愮畻絎︽潵榪炴帴錛屽O_APPEND|O_TEXT琛ㄧず浠ユ枃鏈ā寮忓拰榪藉姞鏂瑰紡鎵撳紑鏂囦歡銆?/font>
渚嬶細(xì)int handle=open("c:\\msdos.sys",O_BINARY|O_CREAT|O_WRITE)
2.close()
鍏抽棴涓涓彞鏌勶紝鍘熷瀷鏄痠nt close(int handle);濡傛灉鎴愬姛榪斿洖0
渚嬶細(xì)close(handle)
3.lseek()
瀹氫綅鍒版寚瀹氱殑浣嶇疆錛屽師鍨嬫槸錛歭ong lseek(int handle, long offset, int
fromwhere);鍙傛暟offset鏄Щ鍔ㄧ殑閲忥紝fromwhere鏄Щ鍔ㄧ殑鍩哄噯浣嶇疆錛屽彇鍊煎拰鍓嶉潰璁茬殑fseek()涓鏍鳳紝SEEK_SET錛氭枃浠墮
閮紱SEEK_CUR錛氭枃浠跺綋鍓嶄綅緗紱SEEK_END錛氭枃浠跺熬銆傛鍑芥暟榪斿洖鎵ц鍚庢枃浠舵柊鐨勫瓨鍙栦綅緗?/font>
渚嬶細(xì)
銆銆lseek(handle,-1234L,SEEK_CUR);//鎶婂瓨鍙栦綅緗粠褰撳墠浣嶇疆鍚戝墠縐誨姩1234涓瓧鑺傘?br> x=lseek(hnd1,0L,SEEK_END);//鎶婂瓨鍙栦綅緗Щ鍔ㄥ埌鏂囦歡灝撅紝x=鏂囦歡灝劇殑浣嶇疆鍗蟲(chóng)枃浠墮暱搴?/font>
4.read()
浠庢枃浠惰鍙栦竴鍧楋紝鍘熷瀷鏄痠nt read(int handle, void *buf, unsigned len);鍙傛暟buf淇濆瓨璇誨嚭鐨勬暟鎹紝len鏄鍙栫殑瀛楄妭銆傚嚱鏁拌繑鍥炲疄闄呰鍑虹殑瀛楄妭銆?/font>
渚嬶細(xì)char x[200];read(hnd1,x,200);
5.write()
鍐欎竴鍧楁暟鎹埌鏂囦歡涓紝鍘熷瀷鏄痠nt write(int handle, void *buf, unsigned len);鍙傛暟鐨勫惈涔夊悓read()錛岃繑鍥炲疄闄呭啓鍏ョ殑瀛楄妭銆?/font>
渚嬶細(xì)char x[]="I Love You";write(handle,x,strlen(x));
7.eof()
綾諱技feof()錛屾祴璇曟枃浠舵槸鍚︾粨鏉燂紝鏄繑鍥?錛屽惁鍒欒繑鍥?;鍘熷瀷鏄細(xì)int eof(int handle);
渚嬶細(xì)while(!eof(handle1)){……};
8.filelength()
榪斿洖鏂囦歡闀垮害錛屽師鍨嬫槸long filelength(int handle);鐩稿綋浜巐seek(handle,0L,SEEK_END)
渚嬶細(xì)long x=filelength(handle);
9.rename()
閲嶅懡鍚嶆枃浠訛紝鍘熷瀷鏄痠nt rename(const char *oldname, const char *newname); 鍙傛暟oldname鏄棫鏂囦歡鍚嶏紝newname鏄柊鏂囦歡鍚嶃傛垚鍔熻繑鍥?
渚嬶細(xì)rename("c:\\config.sys","c:\\config.w40");
10.chsize();
鏀瑰彉鏂囦歡闀垮害錛屽師鍨嬫槸int chsize(int handle, long size);鍙傛暟size琛ㄧず鏂囦歡鏂扮殑闀垮害錛屾垚鍔熻繑鍥?錛屽惁鍒欒繑鍥?1錛屽鏋滄寚瀹氱殑闀垮害灝忎簬鏂囦歡闀垮害錛屽垯鏂囦歡琚埅鐭紱濡傛灉鎸囧畾鐨勯暱搴﹀ぇ浜庢枃浠墮暱搴︼紝鍒欏湪鏂囦歡鍚庨潰琛?'\0''銆?/font>
渚嬶細(xì)chsize(handle,0x12345);
--------------------------------------------------------------------------------
銆銆濡傛灉鐔熸?zhèn)夋眹缂栧彲鑳戒細(xì)鍙戠幇杩櫩U嶆柟寮忓拰姹囩紪璇█鐨凞OS鍔熻兘璋冪敤鍙ユ焺寮忔枃浠舵搷浣滃緢鍍忥紝姣斿open() 灝卞儚DOS鏈嶅姟鐨?CH鍙峰姛鑳借皟鐢紝鍏跺疄榪欑鎿嶄綔榪樻湁涓ょ綾誨瀷鐨勫嚱鏁板氨鏄洿鎺ョ敤DOS鍔熻兘鏉ュ畬鎴愮殑錛屽_open()錛宊dos_open()絳夌瓑銆傛湁鍏? 瓚e彲鑷凡鏌ヨBCB鐨勫府鍔┿?/font>
銆銆鍚屾祦寮忔枃浠舵搷浣滅浉鍚岋紝榪欑涔熸彁渚涗簡(jiǎn)Unicode瀛楃鎿嶄綔鐨勫嚱鏁幫紝濡俖wopen()絳夌瓑錛岀敤浜?X/NT涓嬬殑瀹藉瓧絎︾紪紼嬶紝鏈夊叴瓚e彲鑷凡鏌ヨBCB鐨勫府鍔┿?/font>
銆銆鍙﹀錛屾縐嶆搷浣滆繕鏈塴ock(),unlock(),locking()絳夌敤浜庡鐢ㄦ埛鎿嶄綔鐨勫嚱鏁幫紝浣嗗湪BCB涓敤寰楀茍涓嶅錛屾垜灝變笉浠嬬粛浜?jiǎn)锛屼絾濡傛灉瑕佺敤C鏉ュ啓C(jī)GI錛岃繖浜涘氨蹇呰鐨勫父璇嗕簡(jiǎn)錛屽鏋滀綘鏈夎繖鏂歸潰鐨勮姹傦紝閭e氨寰楄嚜宸插ソ濂界湅甯姪浜?jiǎn)銆?/font>