我正在努力学习C并且我已经非常困惑了.
在我使用的OOP语言中,存在执行方法重载的能力,其中相同的函数可以具有不同的参数类型并且以最合适的方式调用.
现在在C中我知道情况并非如此,所以我无法弄清楚以下问题,printf()如何工作.
例如:
char chVar = 'A';
int intVar = 123;
float flVar = 99.999;
printf("%c - %i - %f \n",chVar, intVar, flVar);
printf("%i - %f - %c \n",intVar, flVar, chVar);
printf("%f - %c - %i \n",flVar, chVar, intVar);
Run Code Online (Sandbox Code Playgroud)
现在因为C不支持函数重载,printf如何设法获取任何类型的任意数量的参数,然后与它们一起正常工作?
我试图通过下载glibc源程序包找到printf()工作,但似乎可以找到它,虽然我会继续寻找.
这里有人可以解释C如何执行上述任务吗?
我试图使用BeautifulSoup库从自动生成的HTML表中提取IP地址,我有点麻烦.
HTML的结构如下:
<html>
<body>
<table class="mainTable">
<thead>
<tr>
<th>IP</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="hello.html">127.0.0.1<a></td>
<td><img src="uk.gif" /><a href="uk.com">uk</a></td>
</tr>
<tr>
<td><a href="hello.html">192.168.0.1<a></td>
<td><img src="uk.gif" /><a href="us.com">us</a></td>
</tr>
<tr>
<td><a href="hello.html">255.255.255.0<a></td>
<td><img src="uk.gif" /><a href="br.com">br</a></td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
下面的小代码从两个td行中提取文本,但我只需要IP数据,而不是IP和国家/地区数据:
from bs4 import BeautifulSoup
soup = BeautifulSoup(open("data.htm"))
table = soup.find('table', {'class': 'mainTable'})
for row in table.findAll("a"):
print(row.text)
Run Code Online (Sandbox Code Playgroud)
这个输出:
127.0.0.1
uk
192.168.0.1
us
255.255.255.0
br
Run Code Online (Sandbox Code Playgroud)
我需要的是IP table.tbody.tr.td.a元素文本而不是国家table.tbody.tr.td.img.a元素.
是否有任何有经验的BeautifulSoup用户会对如何选择和提取有所了解.
谢谢.
我正在创建一个PHP站点,并遇到了以下问题,我希望能够单击页面上的超链接,将一个小数据项发送到php脚本,让脚本执行其功能,然后返回结果.
我在这个站点上使用AJAX将每个页面加载到站点的div部分,所有页面,数据和响应都加载到这个中央div中,如下所示:
<html>
<body>
<div id="topMenuBar">
<div id="contents">
//ALL DATA IS LOADED HERE...//
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
因此,当从顶部菜单中选择页面时,我只需运行以下代码:
$('#topMenuBar a').click(function(e)
{
e.preventDefault();
$('#contents').load($(this).attr('href'), function()
{
});
});
Run Code Online (Sandbox Code Playgroud)
现在页面加载到内容部分,我正在加载一个名为"results.php"的页面,它连接到数据库,查询它,并创建一个带有结果的HTML表.每个表行都有一个小的超链接,当点击它时,它意图将值发送到另一个PHP脚本,然后清除内容div,然后使用此脚本的响应重新填充div(getInfo.php).例如,一行将具有以下PHP代码生成链接:
<label class="moreInfo"><a name="test01" onClick="getInfoFromPHP(<?php echo $data[$id]; ?> )">Get Info</a></label>
Run Code Online (Sandbox Code Playgroud)
因此当表格由PHP生成时,点击时链接会传递JS函数的值.
我现在需要做的是将值发送到PHP脚本,该脚本将再次查询数据库,并将结果插入"contents"div.我一直在尝试以下功能.
function getInfoFromPHP(myVar){
var netID = myVar;
$.ajax({
url: "getInfo.php",
type: "POST",
data: {
networkID: netID
},
success: function(html) {
$('#contents').empty();
$('#contents').load(html);
}
});
};
Run Code Online (Sandbox Code Playgroud)
当我调用该函数时,它似乎确实将数据发送到脚本但我从firebug得到以下错误:
POST http://127.0.0.1/private/networks/includes/leave_a_network.php - 200 OK -15ms
GET http://127.0.0.1/%3Ch2%3EHello 403 Forbidden 21ms"NetworkError:403 Forbidden - http://127.0 .0.1 /%3Ch2%3EHello …
我正在开发一个小型的Web项目,我在JS中创建变量时有点困惑.
该应用程序允许人们使用JS库Raphael在画布上创建形状.这一切都非常简单但我想知道的是,假设用户创建了10个立方体.我将如何在javascript中执行此操作,我的意思是,这些多维数据集中的每一个都需要自己的变量名称,以便可以引用它们.如何让用户在创建对象时创建变量?
我意识到这似乎是一个令人难以置信的愚蠢问题,但我的大脑目前有点疲惫不堪.
感谢您对此事的任何帮助.
我试图更好地理解Java接口,并在一些非常基本的代码中遇到以下问题.
以下创建两个实现相同接口的类.然后我创建两个ArrayLists来保存这两个类的对象.然后,我想创建一个增强型for循环,它遍历每个列表并执行最初在界面中定义的方法.
我认为我可以使用循环,而不是采用特定的类类型,因为它的参数可以使用接口类型,这将允许我使用任何实现该接口的类,但似乎我犯了错误.
我将如何创建一个for循环,它只允许对实现接口的类进行操作?
interface Valueing{
double getValue();
}
class Coin implements Valueing
{
private double coinVal = 0.0;
Coin(double initVal){
coinVal = initVal;
}
public double getValue(){
return this.coinVal;
}
}
class Note implements Valueing
{
private int noteVal = 0;
Note(int initVal){
noteVal = initVal;
}
public double getValue(){
return (double)noteVal;
}
}
public class IFaceBasics{
public static void main(String[] args){
ArrayList<Coin> myChange = new ArrayList<Coin>();
myChange.add(new Coin(0.01));
double totalChange = sumValues(myChange);
ArrayList<Note> myNotes = new ArrayList<Note>();
myNotes.add(new …Run Code Online (Sandbox Code Playgroud)