#include <stdio.h>
#include <stdio.h>
int main ()
{
printf ("hello world");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我编译它时,编译器不会给包括stdio.h两次的任何警告/错误.为什么会这样?不是功能scanf,printf声明和定义现在的两倍等等?
提前致谢
我想在Python 3.1.3中使用sqlite3,我需要将enable_load_extension设置为true.要做到这一点,我相信我需要sqlite版本3.x. 从这里的阅读帖子来看,看起来合适的sqlite版本应该与python 2.6及更高版本捆绑在一起.但是,当我这样做时:
import sqlite3
sqlite3.version_info
Run Code Online (Sandbox Code Playgroud)
返回的结果是:'2.4.1'
我在运行Python 2.6的另一台机器上得到了相同的答案.
pysqlite站点没有Python 3.x的二进制文件.我的Python副本来自官方Python站点.
那么:1)我应该用什么版本的sqlite 3.1?2)如果我应该有一个更新的版本,它已经消失了 - 我需要设置一个环境变量吗?2)如果我需要你
使用ctypes时遇到一些问题
我有一个带有以下界面的testdll
extern "C"
{
// Returns a + b
double Add(double a, double b);
// Returns a - b
double Subtract(double a, double b);
// Returns a * b
double Multiply(double a, double b);
// Returns a / b
double Divide(double a, double b);
}
Run Code Online (Sandbox Code Playgroud)
我也有一个.def文件,所以我有"真正的"名字
LIBRARY "MathFuncsDll"
EXPORTS
Add
Subtract
Multiply
Divide
Run Code Online (Sandbox Code Playgroud)
我可以通过ctype从dll加载和访问函数,但我无法传递参数,请参阅python输出
>>> from ctypes import *
>>> x=windll.MathFuncsDll
>>> x
<WinDLL 'MathFuncsDll', handle 560000 at 29e1710>
>>> a=c_double(2.12)
>>> b=c_double(3.4432)
>>> x.Add(a,b)
Traceback (most recent call …Run Code Online (Sandbox Code Playgroud) 我正在使用SWIG,我的函数返回一个char *malloc'ed.SWIG回归PyString_FromStringAndSize(my-char-str, len).
有没有办法在my-char-str不编辑C包装器代码的情况下释放它?
我会将格里高利日期转换为Hijri(伊斯兰教)日期.可以在网上搜索后,我找到了一个转换它的源代码.我将代码从Java和PHP转换为C base.
工具有时候工作没有任何问题.但有些日子有问题.
我需要你的帮助来修复工具或可用的代码,没有任何问题!BTW我发现了另一个源代码(http://emr.cs.iit.edu/~reingold/calendar.C),它是C++库.因为我不知道C++是否有人可以将其转换为C Base或Objective C将是完美的(仍然不确定此代码是否正常工作).
PS您可以在以下网址查看正确的日期:islamicfinder.org/Hcal/index.php
void gregorian_to_hijri(int* h_y, int* h_m, int* h_d, int g_y, int g_m, int g_d)
{
int year, month, day;
int zyr;
int zd;
int zm;
int zy;
float zjd;
int zl;
int zn;
int zj;
year = g_y;
month = g_m;
day = g_d;
zyr = year;
zd = day;
zm = month;
zy = zyr;
if((zy > 1582) || ((zy == 1582) && (zm > 10)) || ((zy == 1582) && …Run Code Online (Sandbox Code Playgroud) 我正在尝试用 python 抓取网页。我能够轻松获得单行标签的结果,但对于分布在多行上的标签,我的代码无法检索任何内容。
在 HTML 源代码中,单行标签显示为:
<td><span class="facultyName">John Matthew Falletta, MD</span>
Run Code Online (Sandbox Code Playgroud)
并且多个行标记存在为:
<td><span class="label">Division:</span>
</td><td>Hematology/Oncology</td>
Run Code Online (Sandbox Code Playgroud)
这是我写的:
patFinderFullname = re.compile('<span class="facultyName">(.*)</span>')
fullname = re.findall(patFinderFullname,webpage) #works fine
patFinderDivision = re.compile('<span class="label">Division:</span> </td><td>(.*)</td>')
division = re.findall(patFinderDivision,webpage) #doesn't work
Run Code Online (Sandbox Code Playgroud)
这里我的网页变量包含必须被抓取的 url。有人可以指出,我错过了什么,或者我错在哪里?
这就是我正在尝试的:
import ctypes
import os
drive = "F:\\"
folder = "Keith's Stuff"
image = "midi turmes.png"
image_path = os.path.join(drive, folder, image)
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, image_path, 3)
Run Code Online (Sandbox Code Playgroud)
基本上,这段代码显然应该将桌面背景设置为 midi turmes.png,它改变了桌面,但是,由于某些奇怪的原因,它始终是绿色背景(我在 Windows 中的个性化设置是图像后面的绿色背景)如何我要解决这个问题并使桌面看起来像这样吗?:https://i.stack.imgur.com/MRJ1H.png
我有一个视频文件,想通过套接字发送它。视频被发送到客户端,但视频不可播放,并且接收到的视频大小为 2 KB。最重要的是视频大小为 43 MB。问题是什么?
服务器:
import socket
try:
soc = socket.socket()
print('socked created.')
host = ''
port = 8080
soc.bind((host, port))
print('soc bound.')
soc.listen(10)
print('waiting for connecting...')
con, addr = soc.accept()
print('server connected to IP: ' + addr[0] + " port: " + str(addr[1]))
while True:
filename = input('enter filename: ')
file = open(filename, 'rb')
sendfile = file.read(9000000)
con.send(sendfile)
print("file has been send.")
break
con.close()
soc.close()
except socket.error as err:
print('error ', str(err))
Run Code Online (Sandbox Code Playgroud)
客户:
import socket
soc = socket.socket(socket.AF_INET, …Run Code Online (Sandbox Code Playgroud) 有没有办法转换包含指向字节数组的指针的 Ctypes 结构?
class SRamAccess(ctypes.Structure):
_fields_ = [('channel', ctypes.c_uint), ('offset', ctypes.c_uint), ('len', ctypes.c_uint), ('data', ctypes.c_char_p)]
Run Code Online (Sandbox Code Playgroud) 在 Python 中,我试图让一个无限循环同时开始并行运行,一个简单的例子是:
from threading import Thread
def func(argument):
while True:
print(argument)
def main():
Thread(target=func("1")).start()
Thread(target=func("2")).start()
Thread(target=func("3")).start()
Thread(target=func("4")).start()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
现在只有第一个线程运行,所以结果是:
1
1
1
1
....
Run Code Online (Sandbox Code Playgroud)
它应该是:
1
2
3
4
....
Run Code Online (Sandbox Code Playgroud)
我发现了几个类似的问题,但提供的解决方案似乎都不适合我,包括join在线程上使用。
因此,如果有人知道我的问题的解决方案,将不胜感激。
提前致谢!
python ×8
c ×3
ctypes ×3
arrays ×1
c++ ×1
dll ×1
header-files ×1
hijri ×1
objective-c ×1
scripting ×1
sockets ×1
sqlite ×1
swig ×1
web-scraping ×1