我正在做这个任务,制作一个解决数独的程序.我有一个带有SudokuTextBox网格的面板,扩展了JFormattedTextField.我有一个MaskFormatter,因此每个文本框只接受一个整数.然后在我的面板中,当密钥被释放时,我有这个代码.
public void keyReleased(KeyEvent e) {
SudokuTextBox tb = (SudokuTextBox) e.getSource();
int row = tb.getRow();
int col = tb.getCol();
int value = toInteger(tb.getText());
//System.out.println(value);
if(sudoku.isValid(row, col, value)) {
sudoku.set(row, col, value);
}
else {
sudoku.set(row, col, 0);
tb.setText(null);
}
tb.setCaretPosition(0);
sudoku.print();
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我在文本框中放一个有效的值,然后我回去(由数独的规则),输入无效值的文本框被清除.但是当我向前选项卡时,前一个有效值显示在文本框中.我sudokumatrix包含所有已inputed不明确的价值像它应该这样,只有在相应的文本框中的数字.
当我将"SudokuTextBox扩展JFormattedTextField"更改为"SudokuTextBox extends JTextField"时,它更加令人困惑,它就像一个魅力.但我不能设置JTextField的大小,以便它是正方形,我不能强制每个文本框只有一个整数.
我错过了一些非常明显的东西吗
我已经构建了自己的libc ++,我通常将其包含在内-I /path/to/lib/include -L /path/to/lib/lib.但是现在我必须与其他人共用一个Mac项目,我想给他们一个"正常工作"的Makefile™.
考虑以下程序:
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
uint32_t nums[100];
for (size_t i = 0; i < 10; ++i)
{
nums[i] = 666;
}
vector<int> hello{1, 2, 3, 4, 5, 6, 7, 8};
for_each(hello.begin(), hello.end(), [](int tal)
{
cout << tal << endl;
});
}
Run Code Online (Sandbox Code Playgroud)
当我编译它时,clang++ -o test test.cc我自然会得到与丢失-std=c++11标志相关的错误.好的,让我们添加它clang++ -std=c++11 -o test test.cc.这给出了几个错误,其中一个错误
test.cc:15:17: error: no matching constructor for initialization of 'vector<int>' …Run Code Online (Sandbox Code Playgroud) 我有一堆函数,所有函数都以相同的方式开始和结束,只有中间部分不同.
我知道我能做到:
int
foo(int bar)
{
intro();
/* stuff that differs */
outro();
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否还有另一种方法,让我免于重新输入所有函数中的intro()和outro().
我正在使用非常简单的骨头ByteBuffer与java 1.4一起使用.我有一个小骨架,基本上只有糟糕的put/getInt()put/getLong()实现.我的问题是,当putInt和getInt工作时,getLong()(我认为它)不起作用.
当我读出第四个字节并将其移入长时间溢出时.但是我所有的变量都很长,所以它不应该溢出.
下面是代码(请记住,这只是一个开始):
public class ByteBuffer {
private byte[] buffer;
private int first = 0;
private int last = 0;
private int size;
private int elements;
public ByteBuffer(int size) {
this.size = size;
buffer = new byte[size];
}
public void putInt(int theInt) {
for (int i = 0; i < 4; i++) {
put((byte) (theInt >>> (8 * i)));
}
}
public int getInt() {
int theInt = 0;
for (int i = 0; i < 4; i++) { …Run Code Online (Sandbox Code Playgroud) 我正在做一个小型客户端/服务器项目作为 C++ 课程的最后一个项目。我们得到了一些负责通信的类(使用 sys/socket.h),我们基本上可以connection->send(byte)发送一个字节的数据。
假设我有一个要发送的字符串。如何确保从客户端发送到服务器时将“a”解释为“a”,反之亦然?由于标准没有说明 char 默认为无符号或有符号的内容,我不知道如何处理它。
我有一些想法,我可以std::numeric_limits<char>::min()在每一端减去,但我不确定这是一个好的想法。
我们有一个论文项目正在工作,他们正试图让外部 RAM 为 STM32F417 MCU 工作。该项目正在尝试一些真正需要资源且内部 RAM 不够的东西。
问题是如何最好地做到这一点。
当前的方法只是将链接脚本 (gnu ld) 中的 RAM 地址替换为外部 RAM 的地址。
这种方法的问题在于,在初始化期间,由于 FSMC 尚未初始化,因此芯片必须在内部 RAM 上运行。
它似乎可以工作,但是一旦 pvPortMalloc 运行,我们就会遇到一个硬错误,这可能是由于取消引用虚假地址,我们可以看到变量在系统初始化时没有正确初始化(我猜这是有道理的,因为内部 RAM 不是完全使用,可能应该使用)。
我意识到这是一个模糊的问题,但是在 Cortex M4 MCU(更具体地说是 STM32F4)上的外部 RAM 中运行代码时,一般的方法是什么?
谢谢