在这里,我的代码在在线 geeksforgeeks 编译器中给出了奇怪的结果。
{ "1":[ {"id":"171113524", "title":"xxxx", "category":"4",
{ 1:[ {id:"171113524", title:"xxxx", category:"4",
start:"20160913062500", stop:"20160913093000"} , {id:"171115415",
title:"xxxx", category:"1",
start:"20160913093000", stop:"20160913100000"} , {id:"171115421",
title:"xxxx", category:"2", start:"20160913100000",
stop:"20160913104702"} , {id:"171115471", title:"xxxx
", category:"6", start:"20160913104702",
stop:"20160913110000"} , {id:"17111049", title:"xxxx",
category:"4", start:"20160913110000", stop:"20160913110500"} ,
{id:"17111335", title:"xxxx", category:"4",
start:"20160913110500", stop:"20160913111200"} , {id:"17111354",
title:"xxxx", category:"4",
start:"20160913111200", stop:"20160913111900"}
输出 $.ajax({
url: "http://domain/corsproxy?url=http://json.json/json.json",
type: "GET",
timeout: 3000,
dataType: "json",
success: function(parse) {
var strHtml = '';
$.each(parse, function(key, value) {
strHtml += ' <span class="location">' + value.title + '</span><br />';
});
document.getElementById("results").innerHTML =
strHtml;
},
error: function(jqXHR, exception) {
console.log(jqXHR);
}
});
但我认为正确的输出是#include <stdio.h>
main()
{
printf("\nhai\bas\rha\n");
}
。
在线编辑器墨水:http://code.geeksforgeeks.org/paWwuv
为什么编译器输出错误?请帮帮我。
答案 0 :(得分:2)
在线编译器打印到html页面,而不是控制台。浏览器显示的\b
与终端窗口的显示方式不同。
如果您在在线编译器中运行代码,然后查看页面源,您可以看到您打印的所有字符都在那里。
答案 1 :(得分:1)
这不是编译器错误。我会怪你的终端。这是我在debian机器上的输出:
$ make so
cc so.c -o so
$ ./so
haas
为了确保程序实际发出您期望的charcode,您可以将输出通过管道传输到xxd
。
此外,如果您不返回任何内容,则main
函数应为void
。如果没有使用类型限定符(我觉得很难看),则假定返回int
类型。
答案 2 :(得分:1)
&#34;正确&#34;在这种情况下,输出为\nhai\bas\rha\n
,与您提供给printf
完全相同,\n
,\b
和\r
代表相应的特殊字符(或字符)组合)。
但是此输出在特定输出设备上的外观取决于该设备的属性和功能。恰好,在线编译器使用(模拟)的输出设备会将该序列显示为haiasha
。
您的期望似乎是基于&#34;典型&#34;的行为。显示终端。同时,在线编辑器不会直接向任何&#34;显示&#34;输出任何内容。它们拦截标准输出,然后对其进行后处理,以便在网页上进行表示。你看到的是后处理的结果。
答案 3 :(得分:0)
\b
是一个特殊角色。终端通常将其解释为&#34;将插入符号向左移动一个字符&#34;。因此,下一个打印字符将覆盖\b
之前打印的最后一个字符。
但是,在其他情况下,\b
字符可能以不同的方式解释。例如,在文件中,它只是一个常规字节(值为8
)。