1. 程式人生 > >字符(串)讀寫

字符(串)讀寫

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;
 } 

字符(串)讀寫