小编Jor*_*ori的帖子

批处理:用插入符号转义

我一直讨厌批处理,我仍然这样做,即使是最简单的事情,我更喜欢C或PHP/Perl.但这次我不能没有它,****叹气****.

我想将echo命令重定向到另一个命令.例如:

echo example | more
Run Code Online (Sandbox Code Playgroud)

但我也希望能够在管道的回声部分使用特殊字符:

echo & | more
Run Code Online (Sandbox Code Playgroud)

这当然没有用.所以我尝试过:

echo ^& | more
Run Code Online (Sandbox Code Playgroud)

哪个也没用.然后通过反复试验我发现:

echo ^^^& | more
Run Code Online (Sandbox Code Playgroud)

那很有效.但作为感兴趣的程序员我想知道为什么.为什么没有^&工作^^^&呢?

cmd batch-file piping

12
推荐指数
2
解决办法
6240
查看次数

Java图形闪烁

好的,我理解你需要一个SSCCE,所以我创建了(我的第一个).

我设法用200行代码复制问题.在我的系统上,这个演示编译并运行完美(当然只有闪烁仍在那里).我剥夺了与它无关的所有东西.所以基本上我们现在有两个源文件:屏幕管理器和游戏管理器.

屏幕管理员:http: //pastebin.com/WeKpxEXW

游戏经理:http: //pastebin.com/p3C5m8UN

你可以使用这个make文件编译这段代码(我使用的是移植版本的Linux'make for Windows):CC = javac BASE = nl/jorikoolstra/jLevel CLASS_FILES = classes/$(BASE)/Game/GameMain.class classes/$ (BASE)/Graphics/ScreenManager.class

jLevel: $(CLASS_FILES)
    @echo Done.

classes/%.class : src/%.java
    @echo Compiling src/$*.java to $@ [command: $(CC) src/$*.java ] ...
    @$(CC) -Xlint:unchecked -d classes -classpath src src/$*.java
Run Code Online (Sandbox Code Playgroud)

源文件放在/src目录和目录中的类中/classes.

在编译为字节码后,可以使用以下.bat文件启动游戏:

@set STARUP_CLASS=nl.jorikoolstra.jLevel.Game.GameMain
@set ARGUMENTS=1280 1024 32
@java -cp classes;resources %STARUP_CLASS% %ARGUMENTS%
Run Code Online (Sandbox Code Playgroud)

请注意,ARGUMENT变量取决于您自己的屏幕设置,您必须更改它,以便以适合您屏幕的分辨率显示游戏.

java windows java-2d game-development

10
推荐指数
1
解决办法
7569
查看次数

ctype_print() UTF-8 字符的最佳解决方案

ctype_print()在 PHP 中,让(或者这是不可能的?)使用 UTF-8 的最佳方法是什么?目前,当我将它与某些 UTF-8 字符一起使用时,它会失败,例如:

\n\n
ctype_print("Cura\xc3\xa7ao");\n
Run Code Online (Sandbox Code Playgroud)\n\n

(在荷兰独立岛Cura\xc3\xa7ao之后)返回false

\n\n

预先感谢您的时间和帮助。

\n

php utf-8 ctype

9
推荐指数
1
解决办法
741
查看次数

pow()转换为整数,意外结果

pow()在C编程语言中使用整数强制转换函数时遇到了一些问题.我正在使用的编译器是Windows平台的Tiny C编译器(tcc版本0.9.24).执行以下代码时,它会输出意外结果100, 99:

#include <stdio.h>
#include <math.h>

int main(void)
{
    printf("%d, ", (int) pow(10, 2));
    printf("%d", (int) pow(10, 2));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,在这个在线编译器中,输出符合预期:100, 100.我不知道是什么导致了这种行为.有什么想法吗?我编程错误,编译错误?

c floating-point casting tcc pow

8
推荐指数
2
解决办法
2819
查看次数

Rectangle类函数getX(),getY()等以双精度返回

根据我的经验和Oracle Java API文档,我知道他们这样做了,但我想知道为什么.通过构造函数,我只允许将int类型参数传递给Rectangle类,x,y等的内部数据表示属于类型int,并且setSize()只排除类型的参数int.但是,为什么像所有的方法getX(),getY(),getWidth()等返回双时不能有任何的精度?为什么不像int预期的那样简单?

编辑:我确实理解它是从Rectangle2D类派生的,但是仍然没有理由只是不提供任何int基础getX()getY()函数,因为与PointPoint2D类不同,这些方法不是抽象的.另外setLocation()是不是抽象的要么.

java rectangles

7
推荐指数
1
解决办法
2448
查看次数

Openssl和PHP

我试图用PHP加载openssl cli工具生成的私钥.我使用了以下命令和PHP代码:

openssl genrsa -des3 4096 -out private.key

if (!($key = openssl_pkey_get_private("file://private.key", "password")));
{
      return false;
}
Run Code Online (Sandbox Code Playgroud)

我确定密码是正确的,文件也是PEM格式,但它一直返回false.我究竟做错了什么?

谢谢,Jori.

php openssl

5
推荐指数
2
解决办法
4216
查看次数

僵尸如何发送邮件?

我总是想知道以下内容:受感染的计算机如何发送电子邮件?我阅读了大型僵尸网络的所有故事,每天发送1-2亿封电子邮件.当我使用我的ISP的SMTP服务器时,我尝试将我的简报发送给不到100人,我的ISPs SMTP服务器阻止.我试图由多个朋友(与所有不同的ISP)这样做,并且它们都是一样的.但是,当我甚至无法发送100封时,这些帽子如何产生如此大量的电子邮件呢?

谢谢,Jori.

email smtp botnet

5
推荐指数
1
解决办法
237
查看次数

Java XML:获取嵌套元素

我正在编写一个简单的 Java 游戏,我想将玩家数据保存到 XML 编码的保存文件中。目前我正在探索 Java XML DOM API,我有一个简短的问题。

假设我有以下 XML 文件(我知道这没有意义,但这只是一个示例)

<?xml version="1.0"?>
<savedGame>
    <name></name>
    <player>
        <name>YOU</name>
        <map>
                        <health>2000</health>
            <name>map_test.map</name>
            <position>
                <x>0</x>
                <y>0</y>
            </position>
        </map>
        <stats>
            <health>1000</health>
            <xp>
                <melee></melee>
                <magic></magic>
                <ranged></ranged>
                <agility></agility>
            </xp>
        </stats>
        <items>
            <item id="0">
                <amount></amount>
            </item>
        </items>
    </player>
</savedGame>
Run Code Online (Sandbox Code Playgroud)

现在我想获取玩家的健康水平(请注意,地图部分还有其他健康元素)。这可以通过以下代码完成:

String hp = ((Element) ((Element) savedGameDocument.getElementsByTagName("player").item(0)).getElementsByTagName("stats").item(0)).getElementsByTagName("health").item(0).getTextContent()
Run Code Online (Sandbox Code Playgroud)

它有效,是的。但这对我来说看起来很恶心。这是获取这些嵌套元素的常用方法吗?为什么没有 ElementList 类?现在我必须投射每个节点。

预先感谢,乔里。

java xml

5
推荐指数
1
解决办法
9103
查看次数

线程中的全局数组

我知道你必须同步你的线程才能在多线程应用程序中安全地更改全局变量内容(其中多个线程试图同时更改变量数据).但是如果你使用全局数组,这也是必要的,其中每个线程只使用n个元素中的一个?

提前致谢!

c multithreading thread-safety

3
推荐指数
1
解决办法
2264
查看次数

当进程尚未完成时,GetExitCodeProcess()返回1

如果我为它创建一个进程和两个管道集,并且该进程在某个时间需要一些用户输入,GetExitCodeProcess()则Windows C API始终返回1.作为示例,您可以使用Windows time命令,这将返回:

The current time is: ...
Enter the new time:
Run Code Online (Sandbox Code Playgroud)

然后立即退出而无需等待输入.

我不希望这个过程完成,直到它真的完成,所以我可以输入它.我该如何解决这个问题.

我已经构建了这个循环(我仍然希望能够确定何时处理完成):

for (;;)
{
    /* Pipe input and output */
    if (GetExitCodeProcess(...) != STILL_ACTIVE) break;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c windows api

2
推荐指数
1
解决办法
1万
查看次数

如何在C预处理器宏中使用#?

我正在尝试在宏中使用预处理程序指令?这可以/如何实现?

#define     HTTP_REQUEST_RETURN_ERROR(error)    *errCode = error;
                                                 #ifdef DEBUG
                                                        LeaveCriticalSection(&debugOutputLock);
                                                 #endif
                                                 return NULL
Run Code Online (Sandbox Code Playgroud)

谢谢,Jori.

c c-preprocessor

2
推荐指数
1
解决办法
130
查看次数

使用realloc()crahes程序

我使用时遇到了一些问题realloc(),因此我使用尽可能少的代码制作了一个示例程序来说明问题.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
    unsigned int i;
    unsigned long long *a;
    srand(time(NULL));
    a = malloc(sizeof(unsigned long long));
    for (i = 0; i < 20; ++i)
    {
        a[i] = rand() % 32;
        printf("%llu\n", a[i]);
        a = realloc(a, (i + 1) * sizeof(unsigned long long));
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这输出:

*检测到glibc demo:realloc():下一个大小无效:0x0000000000dc3010**

为什么会崩溃?

编辑: 我试图chaning (i + 1)(i + 2),然后程序的工作,但我不明白为什么.我只要求将内存空间扩展一个 unsigned long long.

c realloc

1
推荐指数
1
解决办法
195
查看次数