我最近尝试从Eclipse切换到IntelliJ作为我大学课程的调试器,我真的很享受自动完成,Chronon向后调试和其他不错的功能.但是有一件事会让我感到恶心:我只想运行当前文件!
在Eclipse中,"运行"按钮足够智能,只需运行当前文件(如果它包含main方法),否则使用last-ran文件.但是在IntelliJ中,运行文件要复杂得多.您必须创建正确文件的运行配置,然后选择"运行配置",而不是仅打开所需的文件.这对我来说是一个很大的麻烦,特别是因为我在大多数家庭作业和项目中都有许多不同的主要方法.
我发现在Mac上,Ctrl + FN + Shift + F10将"运行上下文配置",这几乎是我正在寻找的.但由于某种原因,这个键绑定没有一个等效的工具栏按钮,可以切换到上下文配置并运行它,这将解决我所有的问题!谁能帮我吗?
IntelliJ有一个检查设置,警告你可能会影响你的代码的"Javac怪癖",但我还没有遇到任何问题.这些怪癖中有哪些是IntelliJ或一般认可的?
这里有很多问题,询问如何暂停后台线程的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应用程序线程何时完成处理我生成的四个按键事件.
我怎么能这样做?谢谢!
此代码正确地逐行读取文件,将每一行存储在 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 的魔力!
java ×3
c ×1
compilation ×1
concurrency ×1
eclipse ×1
file ×1
javac ×1
javafx ×1
stream ×1
testing ×1