输入字符串中包含控制字符,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'),结束输入。