小编Nic*_*ick的帖子

0A在C中转换为0D0A

我必须使用C(我正在运行Windows)编写虚拟磁盘文件处理系统作为大学项目的一部分,当我写入FAT表时,我遇到了一个问题,我尝试创建一个包含引用的FAT链到FAT块10(0A 00),而是写入0D 0A 00.

磁盘由1024块大小为1024的块组成,第一块用于任意信息,第二块和第三块用于FAT,第四块用于根目录,其余块用于更远的数据.

FAT表定义为:

    fatentry_t FAT[MAXBLOCKS];
Run Code Online (Sandbox Code Playgroud)

Fatentry_t定义为:

    typedef short fatentry_t;
Run Code Online (Sandbox Code Playgroud)

我使用以下方式访问它:

    typedef union block{
        datablock_t data;
        dirblock_t  dir;
        fatblock_t  fat;
    }diskblock_t;
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将FAT复制到磁盘:

    void copyFAT(){
        diskblock_t block = getEmptyDiskBlock();
        int pos = 0;
        for(pos = 0; pos < 512; pos++){
            block.fat[pos] = FAT[pos];
        }
        writeblock(&block, 1);
        for(pos = 512; pos < 1024; pos++){
            block.fat[pos-512] = FAT[pos];
        }
        writeblock(&block, 2);
        writedisk("src\\virtualdiskD3_D1");
    }
Run Code Online (Sandbox Code Playgroud)

在制作FAT链时,如果有任何对0A的引用,我会得到一个0D,例如:

00 00 02 00 00 00 00 00  05 00 06 00 07 00 08 00
09 …
Run Code Online (Sandbox Code Playgroud)

c unix eclipse windows

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

C# 中读取流

我有这段代码用于读取Stream

OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
Stream stream = File.Open(op.FileName,FileMode.Open);
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, 10); // Problem is in this line
MessageBox.Show(System.Text.Encoding.UTF8.GetString(bytes));
Run Code Online (Sandbox Code Playgroud)

此代码有效,但如果我更改标记行中的零,则MessageBox不会显示任何内容。

我该如何解决这个问题?

c# stream

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

无法在防火墙后面的Windows 10上安装leiningen-win-installer 1.0

我在Windows 10工作计算机上安装和配置Leiningen时遇到问题.我假设我公司的防火墙阻止GitHub安全证书进行身份验证.

我得到的错误是:

使用"2"参数调用"DownloadFile"的异常:"请求已中止:无法创建SSL/TLS安全通道." 在行:1 char:145 + ... che] :: DefaultNetworkCredentials; $ client.DownloadFile($ a,$ f)}"https ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified :(:) [],MethodInvocationException + FullyQualifiedErrorId:WebException

无法下载 https://github.com/technomancy/leiningen/releases/download/2.8.1/leiningen-2.8.1-standalone.zip

由于"powershell","curl"或"wget"无法检索GitHub的安全证书,下载可能会失败.以下建议不检查证书,因此只有在您了解不这样做的安全隐患时才使用此证书.

PowerShell未能下载最新的Leiningen版本.尝试使用"curl"或"wget"通过使用以下值之一设置HTTP_CLIENT环境变量来下载Leiningen:

  • 设置HTTP_CLIENT = wget --no-check-certificate -O
  • 设置HTTP_CLIENT = curl -f -L -k -o

注意:确保在设置HTTP_CLIENT的值时添加双引号

clojure

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

理解 C++ 中的引用

我有以下代码:

int main() {
    int x = 3;
    int &ref = x;
    int &ref2 = ref;
    ref = 100;
    std::cout <<ref;
    std::cout <<ref2;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这打印出来100100。我觉得很混乱。我的理解是,refref2都是对底层对象 ( x=3) 的引用。然后我们改变 的值ref。因此,我预期1003

c++ reference

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

如何从 YouTube 上的多个视频 ID 创建播放列表?

我有大量视频 ID(200 多个),我想使用所有视频 ID 创建一个 YouTube 播放列表。我尝试了这里的解决方案: https://webapps.stackexchange.com/questions/120451/how-to-create-a-playlist-form-a-list-of-links-not-from-bookmarks

这些解决方案都不起作用,而且大多数都有 50 个视频的限制。给出的Python代码中只有第一个视频,没有其他视频。第一种方法也不起作用,并且复制 Excel 工作表后,对我来说完全崩溃了。

有什么方法可以让我将这些视频添加到播放列表(非手动)吗?例如。使用播放列表创建器或程序/API?谢谢。

youtube video youtube-api playlist

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

D3 右侧只有一个 Y 轴用于绘制折线图

我试图绘制一个 D3 折线图,其 Y 轴在右侧,而不是在左侧。我使用了var yAxis = d3.axisRight(y);,但此代码片段将我的标签绘制在右侧,而不是将轴向右移动。我使用的 D3 版本是 v4.9.1。任何帮助表示赞赏

d3.js

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

如何使用 JSDOM (Node.js) 获取 img src

我需要找到src对的img在我的字符串变量:

const dom = new JSDOM('<img src="godaddy.com">',
                      { includeNodeLocations: true });
console.log(dom.window.document.querySelector("img"));
Run Code Online (Sandbox Code Playgroud)

但是控制台输出是:

HTMLImageElement {}
Run Code Online (Sandbox Code Playgroud)

如何获取src属性的值?

html javascript node.js jsdom mean-stack

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

如何在python中使用pdfminer获取pdf总页数的总数

在PyPDF2中pdfreader.getNumPages()给出了pdf文件的总页数.

如何使用pdfminer获取此信息?

python pdfminer

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

为什么在 V8 中 i ** 2 比 (i + 1) ** 2 慢

考虑以下片段和运行结果:

片段 1:

let final_result, final_result2;
let start = new Date();
for(let i = 0; i < 100000000; i++) {
    final_result = Math.pow(i + 1, 2);
}
let end = new Date();
console.log(end - start); // Output 1

let start2 = new Date();
for(let i = 0; i < 100000000; i++) {
    final_result2 = (i + 1) ** 2;
}
let end2 = new Date();
console.log(end2 - start2); // Output 2
Run Code Online (Sandbox Code Playgroud)

片段 2:

let final_result, final_result2;
let start = new …
Run Code Online (Sandbox Code Playgroud)

javascript performance v8

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

网页抓取选项

你能给我推荐一些从网页上抓取数据的方法吗?

我一直在尝试使用 Python,但我坚持使用我的代码。我在考虑使用 Octoparse。这是网页(http://www.mlsa.am/?page_id=368),它是一个下拉列表,其中选择前一个案例允许您在其他案例中选择其他选项。

python

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


语言在底层如何表示 UTF-8?

我最近看了Computerphile 的 Tom Scott 谈论 UTF-8,之后进行了一些研究,了解到 UTF-8 可用于对最多 6 个字节的字符进行编码,每个字节使用以下标头:

0xxx xxxx    # 1 Byte character
110x xxxx    # 2 Byte character
1110 xxxx    # 3 Byte character
1111 0xxx    # 4 Byte character
1111 10xx    # 5 Byte character
1111 110x    # 6 Byte character
Run Code Online (Sandbox Code Playgroud)

然后用它10xx xxxx来表示额外的字节(我知道RFC3629将其限制为最多 4 个字节)。

我的理解是否正确,这允许对 2,164,286 个不同的字符进行编码(忽略任何保留字符)?

0xxx xxxx    # 7 bits                      =>       128
110x xxxx    # 5 bits + 6 bits   = 11 bits =>     2,048
1110 …
Run Code Online (Sandbox Code Playgroud)

c++ utf-8 character-encoding

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

为什么没有方案允许你从另一个函数中调用函数?

(define function1 (lambda(val)
  (if (list? val) 
     (function2 (val))
     ('!list))))
Run Code Online (Sandbox Code Playgroud)

当我尝试输入'(ttt)时,我收到以下错误:

application: not a procedure;
 expected a procedure that can be applied to arguments
  given: (t t t)
  arguments...: [none]
Run Code Online (Sandbox Code Playgroud)

我已经定义了function2,它可以在我自己调用它时工作,但是我无法在function1中调用它.

lisp scheme

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