<html>
<head>
<script src="jquery-3.2.1.min.js"></script>
<script src="jquery.dataTables.min.js"></script>
<script src="jquery.tabletojson.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.dataTables.min.css"/>
</head>
<body>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
</tr>
<tbody></tbody>
</thead>
<script>
$(document).ready(function() {
$.get("objects.txt", function(response){
var obj = jQuery.parseJSON(response);
$.each(obj.data, function(key,value){
$("#example tbody").append("<tr>");
$("#example tbody").append("<td contenteditable=true>"+ value.name +"</td>");
$("#example tbody").append("<td>" + value.position +"</td>")
$("#example tbody").append("<td>" + value.Office +"</td>")
$("#example tbody").append("</tr>");
});
//uses a table to json library
var json = $("#example").tableToJSON();
});
});
</script>
</body>
当我在每个数组中放入值时,为什么按空格键可以在数组中放置一个值?
例如,当我写1 space 2 space 3 space 时,每个值都放在每个数组中(a [0],a [1],a [2])。
为什么会这样?
答案 0 :(得分:5)
从C标准(7.21.6.2 fscanf函数)
12转换说明符及其含义为:
d Matches an optionally signed decimal integer, whose format is the same as
expected for the subject sequence of the strtol function with the value 10
for the base argument. The corresponding argument shall be a pointer to
signed integer.
和(7.22.1.4 strtol,strtoll,strtoul和strtoull函数)
- ...首先,他们将输入字符串分解为三个部分:一个初始的,可能是空的白色空格字符序列(如 由isspace函数指定),主题序列类似于 以某个基数表示的整数,由base的值决定,和 一个或多个无法识别的字符的最终字符串,包括 终止输入字符串的空字符。然后,他们试图 将主题序列转换为整数,并返回结果。
醇>
对于这样的输入
1 space
2 space
3 space
第一个主题序列为1,第二个主题序列(跳过空白字符后)为2,第三个主题序列为3它们用于在[0],[1]和[2]中相应地存储整数,因为每个主题序列代表一个有效的整数。
考虑到在一般实现中对文本流使用所谓的行缓冲。
来自C标准(7.21.3文件)
- ...当流被缓冲时,字符应该是 作为块时传输到主机环境或从主机环境传输 遇到新行字符。
醇>
答案 1 :(得分:-2)
当您使用带有%d的scanf()时,输入流接受整数值,并将其他值视为分隔符。