【发布时间】:2016-05-11 12:46:45
【问题描述】:
几年来,我一直在用 Java 和最近的 C++ 开发程序。一切都很顺利,直到几个月前,我在编辑器中使用的字体突然在每个字母之间出现了巨大的空格,使其几乎无法阅读。对于 Java,我使用了 NetBeans IDE。现在在我的代码中,我使用了 Papyrus 字体,我将其修改为等宽字体。让我的 cmets 在仍然可用的同时具有手写外观。
几个月前,我的评论间距突然看起来好像每个字符之间都有一个空格。当我修改字体时,我认为这是我的错,我只是换了一种不同的字体。工作得很好,如果不那么有趣的话。
现在,当我正在学习 C++ 课程时,我的导师推荐了 Dev C++ IDE。我知道它很旧,但这是我被告知要使用的。现在我在这里遇到了同样的问题,只有所有字体。有谁知道如何解决这个问题?
- 这是 Windows 7 设置吗? (未知 - 据我所知,Windows 没有任何变化)
- 这是 IDE 设置吗? (可能,但它发生在不止 1 个 IDE 上)
- 这是字体问题吗? (不太可能因为所有字体都有相同的问题)
截图:
【问题讨论】:
-
乍一看,cmets 看起来并不比字体的其他部分差。看起来您正在使用具有等宽间距的非等宽字体,因此“较小”字母的右侧有一些空白空间。例如。你可以看到'm'比例如更适合“我”。
-
您的文件是否突然变成了 Unicode 文件?如果是这样,所有这些空格可能都是
'\0'字符。 -
@MartinBonner 我认为这不太可能,为什么要首先插入所有
'\0'?我也有一种感觉,编译器对此不会太高兴。 -
@BaummitAugen:如果你有一个 ASCII(8 位字符)文件被转换成 UTF-16(16 位字符),然后你把它看成 ASCII,你可能所有的字符在源文件中查找类似于
'\0' 'c'。我可以想象微软的编译器接受 UTF-16 文件(特别是如果他们一开始就有 BOM)——我不知道他们是否接受。说了这么多,我想你是对的:它是一种按最宽字符的宽度显示的比例字体。 -
上图未显示 NetBeans cmets 问题。这是最新的 Dev C++ 版本,其中所有内容都间隔太远。不,我的文件没有更改为 Unicode 文件。据我所知,没有任何改变。