C语言中scanf函数中空格的用处

可能用多了C++语言吧,现在居然都不熟悉scanf的空格还有这么多意义,惭愧惭愧,也一直对字符和字符串的输入方式比较混淆
代码如下:如不会有回车问题的困扰,也不用加getchar().是由于scanf中的空格可以匹配的是一切空白字符,而且对于格式控制串最前面和最后面的空格,可以将缓冲区连续的空白字符当做一个匹配掉!

void main()
{
	char c;
	while (1) {
		printf("输入Y:");
		scanf(" %c", &c);
		if (c != 'Y') break;
		printf("----\n");
	}
	printf("end\n");
	system("pause");
}

C语言中scanf()函数提供的“%[]”格式串可以用来进行多个字符的输入,并对结束符进行自定义。 对于%[]还可以用^+任意字符(包括 eof)来结束字符串的输入,如%[^EOF]就是直到有EOF 输入,字符串才中止。参考代码:

#include <stdio.h>
void main()
{
    char str[100];
 
    scanf("%[^\n]",str);//直到输入回车键,读取才结束,当然不能超过str定义的大小,否则会出错。
                              // 此命令与gets(str)效果一样。
    printf("%s\n",str);
}

猜你喜欢

转载自blog.csdn.net/qq_39905917/article/details/87301935
今日推荐