这是一个重载的$ = jQuery;
var currentID = null;
var chatTimer = null;
var oldhtml = "";
function fetch_data() {
$.ajax({
url: "select.php",
method: "POST",
success: function(data) {
$('#live_data').html(data);
}
});
}
function fetch_chat() {
$.ajax({
url: "fetch_chat.php",
method: "POST",
data: {
id: currentID
},
dataType: "text",
success: function(data) {
$("#chatbox").show();
$('#messages').html(data);
$("div.area").show();
if (oldhtml !== data) {
$('#messages').scrollTop($('#messages')[0].scrollHeight);
}
oldhtml = data;
}
});
}
$(document).ready(function() {
fetch_data();
setInterval(function() {
fetch_chat();
}, 500);
$(document).on('click', '.first_name', function() {
currentID = $(this).data("id1");
fetch_chat();
});
$("#sub").click(function() {
var text = $("#text").val();
$.post('insert_chat.php', {
id: currentID,
msg: text
}, function(data) {
$("#messages").append(data);
$("#text").val('');
});
});
});
运算符函数:
>>
据我了解,std::istream& operator>>(std::istream& is, std::vector<int>& v){
string s;
if (! (is >> s) )
return is;
...
return is;
}
毫无意义,因为终端或控制台会等到键盘或其他来源的输入进入if(! (is >> s))
。因此,s
中的条件值最终将为if()
。谁可以帮忙?
答案 0 :(得分:3)
is >> s
尝试从流s
读取字符串is
。
istream
s operator>>()
会返回对is
的引用。
istream
s operator!()
测试流是否处于无效状态。具体来说,如果已设置流的badbit或failbit,则返回true
。
所以,
if (! (is >> s) )
return is;
在功能上等同于
is >> s;
if (is.fail()) return is; // is.fail() returns true if failbit or badbit are set
这意味着如果从流中读取字符串失败,函数会立即返回。请注意,这与到达流的末尾不同。
答案 1 :(得分:2)
istream
不一定是控制台。它可以是一个字符串流。此外,应用程序代码不会看到“等待用户输入”。输入流被填充时(由操作系统,底层库,...)
无论如何:如果输入流根本不包含任何数据,则该条件为真。
std::string s; // empty!
std::stringstream ss(s);
std::vector<std::string> strings;
ss >> strings; // should be empty!
答案 2 :(得分:1)
了解if (!(is >> s))
意味着您需要了解if (is >> s)
的含义。
由于is
是std::istream
,因此运营商>>
会返回std::istream
。因此,is >> s
是std::istream
,if
内必须生成逻辑值true
或false
。 This Q&A解释了如何在不同版本的C ++中完成它。本质上,std::istream
在操作成功时评估为真实条件。
既然您已了解is >> s
的含义,那么您可以发现添加否定会翻转其含义:!(is >> s)
只有在从{{1}读取s
时才会成立}不成功。对于字符串,不成功的读取意味着流处于无效状态,例如,因为已到达流的末尾。
答案 3 :(得分:-1)
你在一行中做了很多事情
! (is >> s)
你接受输入流并使用它来分配对象s,在if条件下评估s的结果