小编ros*_*tex的帖子

在IntelliJ中运行当前文件?

我最近尝试从Eclipse切换到IntelliJ作为我大学课程的调试器,我真的很享受自动完成,Chronon向后调试和其他不错的功能.但是有一件事会让我感到恶心:我只想运行当前文件!

在Eclipse中,"运行"按钮足够智能,只需运行当前文件(如果它包含main方法),否则使用last-ran文件.但是在IntelliJ中,运行文件要复杂得多.您必须创建正确文件的运行配置,然后选择"运行配置",而不是仅打开所需的文件.这对我来说是一个很大的麻烦,特别是因为我在大多数家庭作业和项目中都有许多不同的主要方法.

我发现在Mac上,Ctrl + FN + Shift + F10将"运行上下文配置",这几乎是我正在寻找的.但由于某种原因,这个键绑定没有一个等效的工具栏按钮,可以切换到上下文配置并运行它,这将解决我所有的问题!谁能帮我吗?

java eclipse intellij-idea

11
推荐指数
3
解决办法
7453
查看次数

Java编译器的一些怪癖是什么?

IntelliJ有一个检查设置,警告你可能会影响你的代码的"Javac怪癖",但我还没有遇到任何问题.这些怪癖中有哪些是IntelliJ或一般认可的?

java compiler-errors compilation javac intellij-idea

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

等待JavaFX Application Thread完成处理事件?

这里有很多问题,询问如何暂停后台线程的JavaFX应用程序线程,但我想要相反!

我正在尝试测试一系列关键输入完全处理所需的时间.我正在使用JavaFX 的Automaton测试库,而editor.type(key)生成一个由应用程序处理的按键事件.这是许多尝试之一:

long start = System.nanoTime();

editor.type(AGUtils.LEFT_ARROW);
editor.type(AGUtils.LEFT_ARROW);
editor.type(AGUtils.RIGHT_ARROW);
editor.type(AGUtils.RIGHT_ARROW);

FutureTask<Callable> t = new FutureTask<>(...);
Platform.runLater(t);

while (!t.isDone()) { } // wait for the FutureTask to be called

long end = System.nanoTime();
Run Code Online (Sandbox Code Playgroud)

但是,FX应用程序线程似乎在处理其余的按键事件之前处理FutureTask.

TLDR:我想精确测量JavaFX应用程序线程何时完成处理我生成的四个按键事件.

我怎么能这样做?谢谢!

java testing concurrency multithreading javafx

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

fgets() 如何跟踪它在哪一行?

此代码正确地逐行读取文件,将每一行存储在 line[] 中并打印出来。

int beargit_add(const char* filename) {
    FILE* findex = fopen(".beargit/.index", "r");

    char line[FILENAME_SIZE];
    while(fgets(line, sizeof(line), findex)) {
        strtok(line, "\n");
        fprintf(stdout, "%s\n", line);
    }
    fclose(findex);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,我很困惑为什么在 while 循环中使用 fgets() 实际上是逐行读取文件的。在学习了 Python 和 Java 之后,我是 C 的新手。

由于对 fgets() 的每次调用都是独立的,所以每次调用它时,C 在哪里记住它当前在哪一行?我认为这可能与将值更改为FILE* index点有关,但是您将指针按值传递给 fgets(),因此无法对其进行修改。

非常感谢任何帮助理解 C 的魔力!

c file stream

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