|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main()
- {
- int n, i;
- printf("请输入字符的个数:");
- scanf("%d", &n);
- char a[n+1];
- printf("请开始输入字符:");
- getchar(); // 将标准输入流中剩下的 '\n' 扔掉
- for (i = 0; i < n; i++)
- {
- scanf("%c", &a[i]);
- }
- a[n] = '\0';
- printf("你输入的字符串是:%s\n", a);
- return 0;
- }
复制代码
标准输入流中的'\n'是什么时候插入的啊?是第一个printf后面吗?什么时候会出现类似情况呢?
本帖最后由 jackz007 于 2019-8-23 16:35 编辑
scanf() 函数不会取输入流中的 '\n',如果想清除这个字符,可以在每次使用 scanf() 函数后,立即用 fflush() 函数清洗输入缓冲区,就像下面这样:
- #include <stdio.h>
- int main()
- {
- int n , i ;
- printf("请输入字符的个数:") ;
- scanf("%d", & n) ;
- fflush(stdin) ;
- char a[n + 1] ;
- printf("请开始输入字符:") ;
- for (i = 0 ; i < n ; i ++) scanf("%c" , & a[i]) ;
- fflush(stdin) ;
- a[i] = '\0' ;
- printf("你输入的字符串是:%s\n", a) ;
- }
复制代码
|
|