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...