c语言里,scanf("%s",chars); 如果我一直输入空格,它就一直不会读取是吗?(直到我输入一个非空字符)
- C语言里面,调用scanf函数,使用域宽控制格式符%ns能输入空格符吗
- C语言 scanf输入回车或空格时停止输入
- c语言中 如果在scanf中的%s后加空格 会怎么样
- 请问在c语言中gets为什么遇到空格不停止而scanf遇到空格就停止了,请大神赐教!必有重谢!
C语言里面,调用scanf函数,使用域宽控制格式符%ns能输入空格符吗
可以的 函数名: scanf
功 能: 执行格式化输入
用 法: int scanf(char *format[,argument,...]);
scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
其调用格式为: scanf("<格式化字符串>",<地址表>);
scanf()函数返回成功赋值的数据项数,出错时则返回EOF。
其控制串由三类字符构成:
1。格式化说明符;
2。空白符;
3。非空白符;
(A) 格式化说明符
格式字符 说明
%a 读入一个浮点值(仅C99有效)
%A 同上
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x 读入十六进制整数
%X 同上
%c 读入一个字符
%s 读入一个字符串
%f 读入一个浮点数
%F 同上
%e 同上
%E 同上
%g 同上
%G 同上
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
C语言 scanf输入回车或空格时停止输入
展开全部
scanf("%d",&a[i]); 无此功能,当你连续按回车时,它继续等待输入数据。
可以用gets(s);再sscanf读数。用strlen(s)判断为空行,则停止输入:
#include
#include
void main()
{
int i,a[10];
char s[20];
for(i=0;i<10;i++) {
gets(s);
if (strlen(s) < 1) break;
sscanf(&s[0],"%d",&a[i]);
printf("%d\n",a[i]);
};
printf("i=%d",i);
}
c语言中 如果在scanf中的%s后加空格 会怎么样
你在格式符后面加入空格的话,你在输入的时候就需要输入空格来分割
比方说 scanf("%d %d %d 这种 都是起分割作用的撒
请问在c语言中gets为什么遇到空格不停止而scanf遇到空格就停止了,请大神赐教!必有重谢!
在键盘输入的时候 空格消息表示null代表输入结束 空格前边的值就赋给变量
123空格 由于第一个接收的是字符类型 只能接收'1' 23还在缓冲区里 这时i变量正需要接收10进制的整形数据...所以23就赋给了i 23后边是空格 就停止了
之后s又从缓冲区里接收了 字符串456 后边又是空格 接收停止 所以最后答案是1,23,456
如果第三个scanf改一下 变成scanf("%[^\n]", s); 答案就应该是第三个(456和789中间没有逗号)
scanf中%[^\n]是接收从^字符到\n字符的所有字符,原本scanf是不接收空格的,遇到空格就当做null来处理停止接受其后边的字符,但是这样控制输入后就会接收空格了,其实也可以用gets函数来接收,gets也接收空格的