bycj.net
当前位置:首页 >> sCAnF能读取空格吗 >>

sCAnF能读取空格吗

控制符不同 你用%c说明是输入一个字符 此时可以scanf可以接受空格 但其他控制符都以空格为结束标志 如%d %s都是以空格为结束 就不会识别

就用getchar吧,scanf中空格就是表示输入下一个字符串,不能读取空格,你说的方式可以分别读取the、king、 of,但读取不到空格

你好!如果是%d、%f读入数值类型,会自动跳过多余的空格和换行,如果是%s遇到空格和换行会停止,如果是%c就可以读入空格和换行.仅代表个人观点,不喜勿喷,谢谢.

除了%c以外的说明符会自动跳过输入项之前的空格,所以scanf(“%d%d”, &n, &m) 与scanf(“%d %d”, &n, &m) 的行为是相同的 然而现在存在%c,则%d%c%d%c首先从IO stdin缓冲区读取4个字节到a 接下来由于%c不会跳过任何字符.所以读一个' '到b 由于接下来stdin缓冲区的内容是b,而scanf尝试从缓冲区读入一个整数,则scanf永远不会跳过这个字符b,且ANSI C要求scanf函数在第一个读缓冲区错误的地方跳出,所以变量C、D被跳过 包括%s格式化也不能跳过空格

这是因为%s、%d都会忽略开头遇到的空格,遇到空格则结束读入;而%c则把空格也当作是一个有效字符读取了.

scanf遇到空格就会结束,所以读不到带空格的字符串 使用gets()可以解决,gets会把空格读进来,遇到回车符才会结束

不能读入空格是指字符串,当然可以读单个字符空格.

scanf遇到以下情况结束读入1.white chars 空格,回车,制表符2.到达%m[d/f/c/s/e/u]指定的宽度m3.出现非法字符,对于%d来说,非digit就是非法字符,如: 'a ' 要使字符串读入white chars,C中使用gets,gets是专门处理字符串读入的函数,没有跳white chars的限制;C++中使用cin.get或者cin.getline 或者用 scanf("%[^\n]",s);读入句子到S中,这个格式化……哎 都忘了,罪过 罪过啊

scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别.gets可以接收空格 scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格.例1:#include <stdio.h> main() { char ch1[10],ch2[10]; scanf("%s",ch1); gets(ch

字符串本来就不是专职用来读取字符串的,建议你需要读取带字符串的数据,可以用 string.h头的 使用char * gets(char *)读入 使用 char *puts(char *) 输出较为安全的可以使用:使用char * fgets(char *,int,stdin)读入 使用 char * fputs(char *,int,stdout) 输出scanf()就是到空格停止读取但是不丢弃数据

网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com