C C 檔案操作 輸入輸出備忘

2021-08-10 16:24:48 字數 3107 閱讀 5928

1.1 普通ascii字元

1) cin >> :結束條件: enter、space、tab鍵

讀取結束條件: while(cin >> value){}

///cin >> 後便可以跟整型,浮點型,字串,string

char cstr[256];

string str;

cin >> cstr;

cin >> str

cout

<< str << cstr << endl;

cin.getline(str);

getline(cin, str);

2) 如果希望得到/丟棄某字元,

或者希望得到空格,

或希望對回車有特別處理(比如每行存在乙個單獨的容器中)

則需要get, ignore等:

while (cin.get(ch)){}

while (cin.get() != '\n')

用於捨棄輸入流中的不需要的字元,或者捨棄回車

char str[300]

// get c-string,接收256個位元組資料

std::cin.get (str,256);

// 當碰到s或者數目達到256時就停止

cin.get(str, 256, 's')

// ignore 扔掉所有until space or the number reach 256

cin.ignore(256,' ');

1.2 漢字

a. windows上

windows上vc預設編碼是gb2312

乙個漢字占用兩個位元組;c++中用寬字元wchar_t來儲存乙個漢字,其他對應部分為:

cin  wcin

cout wcout

char

wchar_t

string wstring

ifstream wifstream

用法:

int main() 

unsigned len = str.size() + 1;

setlocale(lc_ctype, "");

wchar_t *p = new

wchar_t[len];

mbstowcs(p, str.c_str(), len);

std::wstring w_str(p);

delete p;

return w_str;

}std::string ws2s(const

std::wstring& w_str)

unsigned len = w_str.size() * 4 + 1;

setlocale(lc_ctype, "");

char *p = new

char[len];

wcstombs(p, w_str.c_str(), len);

std::string str(p);

delete p;

return str;

}

1.3 中英文混合
file* fp;

char ch;

//注意是「r」而非『r』

fp = fopen("1.txt", 「r+");//讀寫,除此之外用得比較多的有」a+"追加(也有讀許可權)

if( null = fp)

printf("failed to open the file");

ch = getchar();

//讀寫乙個字元

fputc(ch, fp);//向檔案輸入乙個字元,成功則返回字元ch,失敗則返回eof(-1)

ch = putchar();//將ch顯示咋螢幕上

......

while(!feof(fp))

//讀寫字串

char

str[200] = "123456779804254504358045405;

char str[10];

fputs(str, fp);//將str中的字元寫入到檔案中,成功則返回0

rewind(fp);//將檔案讀寫位置標記重新指向檔案開頭,很重要

fseek(fp, 2, 0);//將檔案讀寫位置標記指向離開頭偏移為1(第二個字元)的位置;

char * ret = fgets(str1, 10, fp);//從檔案讀取9個長度的字元,失敗則返回null

if ( ret != null)

printf("%s",str1);

fclose(fp);

//格式化讀寫檔案:

fprintf(fp, "%d, %6.2f

",i, j);//將變數i,j內容按照指定格式輸入到fp所指向的檔案中

fscanf(fp, 「%d, %f", &i, &j);//從檔案中獲取內容。如果檔案中有2,5則i = 2,j=5

fp = fopen("1.dat","rb+");//讀寫二進位制檔案

float buf[10] = ;

float buff[10];

//二進位制讀寫檔案

fwrite(buf, 10, sizeof(float), fp);//從buf的資料中寫10個4個位元組大小的資料塊 (即10個float變數)到檔案fp

fread(buff, 10, sizeof(float), fp);//讀檔案到buff;

1.檔案指標結構體file中有檔案位置標記,會隨著讀寫改變;它總是指向「接下來要讀或寫的乙個字元的位置」

2fseek(fp, 位移量, 起始點);其中起始點有0,1,2,分別表示檔案開頭,當前讀寫位置,檔案結束點;位移量可以為負;

2.系統定義了stdin,stdout,stderr三個「檔案指標」指向輸入輸出流和錯誤輸出流,因此可以用:

fputc(ch, stdout);ch = fgetc(stdin);

exit():結束程式所在的程序(這個過程中會先釋放記憶體,並檢查檔案狀態,將檔案緩衝區的內容寫到檔案)

exit(0)//正常結束程序

exit(1)//異常結束程序

linux c++ 中文處理

C C 檔案的輸入輸出

file 是一種檔案型別,也稱檔案指標 注意 以下程式均為在vs2013中的用法,針對其他編譯器,寫法略有不同,但對檔案的用法都一樣!定義 file fp fgetc fp 從fp所指的檔案讀乙個字元 fputc ch,fp 將ch字元寫到檔案指標變數fp所指的檔案中 fopen s fp,yy.t...

C C 輸入 輸出

在c語言中,我們的輸入輸出靠的是標準庫函式,最常用的就是 scanf 和 printf 這一對了。那麼c 又是怎麼樣實現輸入輸出的呢?下面來寫c 的第乙個程式!include using namespace std int main 不難看出,它有以下特徵 1.使用cout標準輸出 控制台 和cin...

C C 輸入輸出

符號 描述 h0 short型的八進位制 0int型的八進位制 l0long型的八進位制 hdshort型的十進位制 dint型的十進位制 ldlong型的十進位制 hx,hx short型的十六進製制,x表示小寫,x表示大寫 x,x int型的十六進製制,x表示小寫,x表示大寫 lx,lx lon...