字符(串)讀寫
阿新 • • 發佈:2018-01-26
target null feo uva tchar spa ret ufs 一個
UVa 272,Tex Quotes:
輸入一段話,將引號由" ‘‘換成`` ‘‘輸出。
fgetc(fin);
getchar();
fgets(buf,maxn,fin);
從打開的文件fin中讀取一個字符
從標準輸入中讀入一個字符,<<=>>fgetc(stdin)
從打開的文件fin中按每行maxn-1個字符(包括\n)讀取,如果文件中的該行,不足bufsize個字符,則讀完該行就結束。如若該行(包括最後一個換行符)的字符數超過bufsize-1,則fgets只返回一個不完整的行,但是,緩沖區總是以NULL字符結尾,對fgets的下一次調用會繼續讀該行。函數成功將返回buf,失敗或讀到文件結尾返回NULL 。因此我們不能直接通過fgets的返回值來判斷函數是否是出錯而終止的,應該借助feof函數或者ferror函數來判斷。
另外就像fgetc對應getchar一樣,fgets,也有對應的“標準輸入版”,gets,但是gets在使用時不會考慮存放內容的數組的可用空間,只要有命令就會不停的讀取,因而應盡量避免使用gets
代碼如下:
#include"iostream" #include"cstring" using namespace std; int main() { char c,q=1; while((c=getchar())!=EOF){ if(c==‘"‘){ printf("%s",q?"``":"‘‘");q=!q; } else printf("%c",c); } return 0; }
字符(串)讀寫