一、输入
1.scanf和gets
不同点:
char string[50];
scanf("%s",string); //当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是不能接受回车,空格和tab键,他们仍会留在输入的缓冲区中。
gets(string); //遇到回车认为输入结束,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中
相同点:
字符串接受结束后自动加'\0'。
2.scanf的返回值
scanf函数执行成功时的返回值为成功读取的变量数,如果第一个变量的读取既告失败则返回值为0。
3.scanf函数中一个参数的应用
在scanf函数中,我们可以使用 %c来读取一个字符,使用 %s 读取一个字符串。但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此我们只能读取一个单词,而不是整行字符串。因此一般使用gets来读取一个字符串。
其实scanf函数也可完成这样的功能,而且还更强大。
这里主要介绍一个参数:%[ ] 。这个参数的意义是读入一个字符集合。 [ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如 %[A-Z] 是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是“^”,这说明读取不在“^”后面集合的字符,即遇到“^”后面集合的字符便停止。注意此时读入的字符串是可以含有空格的。
Eg. 输入一个字符串,这个字符串只含有小写字符。遇到第一个不是小写字符时停止。
scanf("%[a-z],str);
Eg. 想输入一个字符串, 遇到“.”停止,可设计如下:
scanf("%[^.]", str);
使用这个参数,你可以完成许多强大的功能呦!一切OK!
二、输出
printf输出到屏幕、fprintf输出到文件、sprintf输出到字符串