輸入輸出及返回值、格式符

一、返回值

1、scanf, fscanf, sscanf, scanf_s, fscanf_s, sscanf_s

1-3)成功賦值的接收參數的數量(可以爲零,在首個接收用參數賦值前匹配失敗的情況下),或者若輸入在首個接收用參數賦值前發生失敗,則爲EOF。

4-6)同 (1-3) ,除了若有運行時制約違規,亦返回 EOF 。


2、printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s

1,2)傳輸到輸出流的字符數,或若出現輸出錯誤或編碼錯誤(對於字符串和字符轉換指定符)則爲負值。計算’\0’空終止符

3)寫入到 buffer 的字符數(不計空終止字符),或若輸出錯誤或編碼錯誤(對於字符串和字符轉換指定符)發生則爲負值。

4)假如忽略 bufsz 則本應寫入到 buffer 的字符數(不計空終止字符),或若出現輸出錯誤或編碼錯誤(對於字符串和字符轉換指定符)則爲負值。

5,6)傳輸到輸出流的字符數,或若出現輸出錯誤、運行時制約違規錯誤或編碼錯誤則爲負值。

7)寫入到buffer的字符數,不計空終止字符(只要 buffer 不是空指針且 bufsz 非零且不大於 RSIZE_MAX ,就寫入它),在運行時制約違規時爲零,而在編碼錯誤時爲負值。

8)假如忽略 bufsz 則本應寫入 buffer 的字符數的,不包含空終止字符(只要 buffer 不是空指針而 bufsz 非零且不大於 RSIZE_MAX ,就寫入它),或若出現輸出錯誤、運行時制約違規錯誤或編碼錯誤則爲負值。


3、fgetc, getc

成功時爲獲得的字符,失敗時爲 EOF 。

若文件尾條件導致失敗,則另外設置 stream 上的文件尾指示器(見 feof() )。若某些其他錯誤導致失敗,則設置 stream 上的錯誤指示器(見 ferror() )。


4、getchar, putchar, gets, puts

1,2)成功時爲獲得的字符,失敗時爲 EOF 。

3)成功時爲 str(char*) ,失敗時爲 NULL 。

4)成功時返回非負值


5、cin, cout

cin,cout是C++的標準輸入/出流,其本身是一個對象,並不存在返回值的概念。

while(cin>>a)的調用,這裏並不是cin的返回值,而是>>操作重載函數。istream& operator>>(istream&, T &);的返回值,其中第二個參數由cin>>後續參數類型決定。
其返回值類型爲istream&類型,大多數情況下其返回值爲cin本身(非0值),只有當遇到EOF輸入時,返回值爲0。輸入EOF的方法,windows下輸入ctrl+z, Linux下輸入ctrl+d。


二、格式符%s

1、輸出

int main()
{
	const char *str = "123";
	printf("%s", str);//輸出123
	
	printf("\n");

	char str1[20] = {'4','5','6','\0','7','8'};
	printf("%s", str1);//輸出456,遇到結束符\0停止輸出

	printf("\n");

	string str2 = "321";
	//錯誤 printf("%s", str); 
	printf("%s", str2.c_str());	 //輸出321
	return 0;
}

2、輸入

int main()
{
	cout << "---------第一個---------" << endl;

	char str[21];
	scanf("%s", str);
	getchar();
	scanf("%c", str);//修改第一個字符
	scanf("%c", &(str[1]));	 //修改第二個字符
	cout <<"輸出:"<< str<<endl;
	 
	cout << "---------第二個---------"<<endl;

	char *str1=(char *)malloc(21*sizeof(char));
	scanf("%s", str1);
	getchar();
	scanf("%c", str1);//修改第一個字符
	scanf("%c", &(str1[1]));   //修改第二個字符
	scanf("%c", str1+2);   //修改第三個字符
	scanf("%s", str1 + 3);//修改第四個及以後的字符
	cout << "輸出:" << str1;
	free(str1);
	return 0;
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章