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

一、返回值

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

在这里插入图片描述

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