读书人

输入字符串中包含控制字符scanf如何

发布时间: 2012-12-29 10:28:09 作者: rapoo

输入字符串中包含控制字符,scanf如何处理?


char a[10];
scanf("%s",a);


我输入:

1234[ctrl+z]5678
1234

结果发现:a[10]中的数据是:1,2,3,4,1,2,3,4,\0

这个怎么理解?
[解决办法]
这个还真不知道。同问。
不过在控制台模式下CTRL+Z似乎是结束的意思。
[解决办法]
debug open assemble language, step by step, see what will write to a[]
[解决办法]
标准输入流是基于行缓冲的,%s以空格(' ', '\t', '\r', '\n', EOF)结束输入。
输入"1234[Ctrl+z]5678[Enter]"后,1234[Ctrl+z]被接受,5678[Enter]被丢弃。
接着输入1234[Enter],1234被接受,遇到空格('\n'),结束输入。

读书人网 >C语言

热点推荐