4

情况:

我的微控制器课程的讲师拒绝将示例代码保存到文本文件中,而是将其保存到 Word 文档文件中。当我打开 doc 文件并将代码复制/粘贴到我的 IDE“CodeWarrior”中时,它会在编译时导致错误。

我不得不将所有代码重写到文本编辑器中,然后将其复制/粘贴到我的 IDE 中。

我的理解:

我被告知始终将代码保存为文本文件,因为当您将代码保存为 word 文档文件时,当您将代码复制/粘贴到 IDE 中进行编译时,它会引入不需要的字符。

我对你的问题:

1.)

有人可以向我解释这个困境,以便我更好地理解它吗?下次当我收到错误时,我想提出一个更好的案例,并且还想更多地了解正在发生的事情。

2.)

当代码来自word文档和文本文件时,是否可以编写一个脚本来显示所有被复制并粘贴到文件中的字符?换句话说,是否有一个程序可以让我看到从 word doc 文件和 txt 文件复制/粘贴代码之间发生了什么?

4

2 回答 2

5

将源代码保存为 Word 文档是愚蠢的。如果你的导师坚持这一点,无论你的论点多么合理和彻底,他们都可能不会听。他们无能为力。

但是,要回答您的问题:1)这取决于您要粘贴的内容。复制到剪贴板的程序通常以几种不同的格式提供数据,从它们自己的内部格式到纯 ASCII 文本,以最大限度地提高兼容性,以便将数据粘贴到几乎任何目标程序中。大多数文本编辑器只接受计划文本版本,在这种情况下不应传输额外的字符。但是,如果您的文本编辑器支持 RTF 或 HTML,则可能不是这样。我不确定 CodeWarrior 支持什么,但它肯定是可能的。

如果是这种情况,一种解决方法:首先粘贴到像记事本这样的纯文本编辑器中。然后从记事本复制到 CodeWarrior。这应该消除任何隐藏的格式。正如上面所说的,确保双引号"确实是双引号,而不是 Word 有时使用的花哨的左右特定引号。

  1. 使用像XVI32这样的十六进制编辑器来查看文件的原始内容,包括非打印字符。或者使用支持显示非打印字符的文本编辑器(vi/vim 等)。
于 2014-01-15T19:57:10.063 回答
0

我正在学习C,我也遇到了同样的问题。当从 PDF 文件中处理一段代码并尝试编译它时,gcc 会返回一系列错误。阅读上面的答案我有一个想法:“如果我将 utf8 转换为 ascii 怎么办?”。好吧,我找到了一个可以做到这一点的网站(https://onlineutf8tools.com/convert-utf8-to-ascii)。但是,它并没有将 utf8 字符转换为 ascii,而是将它们显示为十六进制(从网站复制到文本编辑器,您可以更好地看到它)。从那里我意识到问题主要是引号“”。然后,我将 ascii“翻译”复制到我的代码编辑器中(我必须补充一点,它与 Sublime 一起工作得很好,而 VScode 读取与原始文件中相同的 utf8 代码,即使在网站上的 cp 之后也是如此)并替换了所有十六进制使用正确编译代码所需的实际 ascii 字符。我使用编辑器中的查找和替换功能来执行此操作。我必须说这不是很快。但我相信,在某些情况下,如果您尝试复制的代码太长,那么按照我刚才描述的方式进行复制可能比重写整个代码更快。

于 2021-02-28T21:40:13.967 回答