为什么这段代码不起作用?
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err) {
console.error(err);
});
</script>
虽然它运行正确,但当我使用scanf函数读取字符串时,但是 为什么它没有得到?
答案 0 :(得分:3)
scanf("%s", pStr)
会跳到第一个非空格字符而gets
没有。
在第一个scanf
之后,尾随换行符仍在输入缓冲区中,这样当您调用gets
时,结果为空行,除非您在数字后面输入了额外的字符。
请注意,gets
由于严重的安全漏洞而被标记为过时。
建议将gets(var)
的任何使用替换为fgets(var, length, stdin)
。
答案 1 :(得分:1)
因为数组是基于零的,并且(假设输入有效并且正确的长度,假设您的代码不应该进行)*(ptr + len)
已经包含\0
并且您只是覆盖它。您打算覆盖ptr[len-1]