真的不在墙上的问题,但有没有办法在GCC中编译一串C代码,没有任何媒介来保存该字符串(例如,源文件)?
有点像:
$ gcc "#include <stdio.h> int main( void ){ printf('hello world'); return 0;}" -o test
Run Code Online (Sandbox Code Playgroud)
感觉真的很脏,但如果有一些简单的方法来做这种事情,那将是非常好的.
我一直在努力通过项目欧拉问题列表,我来到一个我知道如何解决,但似乎我不能(给我的解决方案写的方式).
我正在使用Common Lisp执行此操作,我的脚本已运行超过24小时(远远超过他们的一分钟目标).
为了简洁起见,这是我的解决方案(它是一个扰流板,但只有你有一个地狱的快速处理器):
(defun square? (num)
(if (integerp (sqrt num)) T))
(defun factors (num)
(let ((l '()))
(do ((current 1 (1+ current)))
((> current (/ num current)))
(if (= 0 (mod num current))
(if (= current (/ num current))
(setf l (append l (list current)))
(setf l (append l (list current (/ num current)))))))
(sort l #'< )))
(defun o_2 (n)
(reduce #'+ (mapcar (lambda (x) (* x x)) (factors n))))
(defun sum-divisor-squares (limit)
(loop for i from 1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习更多关于在SBCL中处理套接字和网络连接的知识; 所以我为HTTP写了一个简单的包装器.到目前为止,它只是制作流并执行请求以最终获得网站的标题数据和页面内容.
到目前为止,它已经有点体面.没有什么可以吹嘘回家,但它至少有效.
然而,我遇到了一个奇怪的问题; 我一直收到"400 Bad Request"错误.
起初,我对如何处理HTTP请求(或多或少地将请求字符串作为函数参数传递)有点怀疑,然后我创建了一个函数,使用我需要的所有部分格式化查询字符串并返回它以供使用以后......但我仍然得到错误.
更奇怪的是,每次都不会发生错误.如果我在像Google这样的页面上尝试脚本,我会得到"200 Ok"的返回值...但在其他网站的其他时间,我会得到"400 Bad Request".
我确定我的代码存在问题,但如果我确切地知道导致它的原因,我会被诅咒.
这是我正在使用的代码:
(use-package :sb-bsd-sockets)
(defun read-buf-nonblock (buffer stream)
(let ((eof (gensym)))
(do ((i 0 (1+ i))
(c (read-char stream nil eof)
(read-char-no-hang stream nil eof)))
((or (>= i (length buffer)) (not c) (eq c eof)) i)
(setf (elt buffer i) c))))
(defun http-connect (host &optional (port 80))
"Create I/O stream to given host on a specified port"
(let ((socket (make-instance 'inet-socket
:type :stream
:protocol :tcp)))
(socket-connect
socket (car …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的Python问题(2.6.2) 我得出的结论是Vista端口中的一个错误(我无法在XP或Linux中复制它).
我有一个用户列表,加密密码,以及我存储在一个更大的列表中的主机(它充当一种数据库).
除了单个用户的数据存储方式和组的存储方式不一致外,这一切都很好用.
由'create_user'方法创建
['localhost','demo','demouserpasswordhash']
由'create_database'方法创建
['\ xff\xfel\x00o\x00c\x00a\x00l\x00h\x00o\x00s\x00t\x00','\ x00d\x00e\x00m\x00o\x00','\ x00d\x00e\x00m\x00o\x00u\x00s\x00e\x00r\x00p\X00A\x00s\x00s\x00w\x00o\x00r\x00d\x00h\X00A\x00s\x00h\X00\r\X00\N']
我不明白它为什么这样做,因为它的代码有多简单:
# ----- base functions
def create_user ( user_data ):
return user_data.split(":")
def show_user ( user_data ):
print "Host: ", user_data[0]
print "Username: ", user_data[1]
print "Password: ", user_data[2]
print
def create_database ( user_list ):
database = []
for user in user_list:
database.append( create_user( user ) )
return database
def show_database( database ):
for row in database:
show_user( row )
# ----- test area
users = open( "users.txt" ) …Run Code Online (Sandbox Code Playgroud) 我试图在F#上学习自己,我担心我不理解我应该做的事情.
我正在尝试重新创建一本我喜欢的书的功能(来自Royal和Panarese的Creative Cursing).
简而言之,您有两个单独的单词列表,可以从中选择两个随机单词,从而产生一个奇怪的短语.够简单吗?
这就是我所拥有的:
#light
open System
open System.IO
let getWordList file =
File.ReadAllLines( file )
let getRandArrElement (arr : string[]) =
let rnd = Random( 0 )
arr |> Seq.nth (rnd.Next arr.Length)
let wordList1 = getWordList "words1.txt"
let wordList2 = getWordList "words2.txt"
let word1 = getRandArrElement wordList1
let word2 = getRandArrElement wordList2
printf "%s %s" word1 word2
Run Code Online (Sandbox Code Playgroud)
它也有效.除了它每次运行时返回相同的短语.
我有一种感觉,它正在做的是在编译时每次调用"getRandArrElement"计算一个随机值,然后使用该值作为THE值(我认为这很奇怪,但我知道什么?).
我的逻辑有什么问题,我该如何解决?