本文主要是介绍scanf()如何读取一整行(转),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用scanf获取一行字符串包括空格的以及C语言函数
其内容为
#include<stdio.h>
int main()
{
char str[1024];
scanf("%[^\n]", &str);
...
return 0;
}
说明:
在scanf函数中, 可以使用%c来读取一个字符, 使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串,因此一般使用fgets来读取一个字符串。
其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^", 这说明读取不在"^" 后面集合的字符,既遇到"^" 后面集合的字符便停止.注意此时读入的字符串是可以含有空格的。
如果要循环的从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。否则的话,在下一次读取一行的时候,第一个就遇到'\n',匹配不成功就直接返回了。
这篇关于scanf()如何读取一整行(转)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!