2011-06-09 54 views
5

检测标签是否与检测空间相同?即用于检测空间,我只是将空格字符与其ASCII码进行比较。如何检测文本文件中的选项卡?

对于选项卡,我必须在文件中搜索'\ t'字符还是有其他方法?

+2

呃,标签也有一个ASCII码:9 – 2011-06-09 06:17:42

+0

一定要选择一个答案 - 它使人们更有可能在将来回答你的问题,并奖励他们的快速和努力。 – Cryo 2011-06-09 06:24:03

+0

@Cryo谢谢,但我不需要这个提示,如果你在下面的评论中看到,它不确定它的ascii值是否应该用于检查。我会选择一旦得到确认的答案。 – 2011-06-09 06:25:47

回答

3

假设你正在处理ASCII数据,你可以在文本文件中搜索一个值为'\ t'(9)的字节。选项卡在文本文件中表示为单个字节,大多数读取文件的库对这些字节不做任何特殊处理。

+0

你们都说过同样的事情,所以感谢你们所有人:) – 2011-06-09 06:21:56

+1

幸运的是,你有这个“假设”位,还有比ASCII的势力更烦人:-) – paxdiablo 2011-06-09 06:36:44

+0

@paxdiablo:请你详细说明一下吗? – Nick 2011-06-09 06:38:34

1

一个标签只是另一个字符,所以你可以检查ASCII值,如果你想。

1

尽管选项卡在编辑器中显示为4或8个空格,但它实际上在文件内表示为单个字符('\ t',如您所述)。空格字符和制表符占用一个字节。所以基本上,你的假设是正确的。

5
if('\t' == myChar) 

这会行得通,而且会比检查9更好,因为9可能不是所有体系结构中的保证值。

+0

有趣 - 你有这样的例子,当'\ t'不是9? – Nick 2011-06-09 06:23:23

+0

此外,你的意思是说,在某些情况下,标准的ascii图表可以有所不同吗?如果是,那么你能指出哪些是哪些? – 2011-06-09 06:23:55

+1

我不知道任何实际的例子,这就是为什么我说'不可以',但是在任何情况下,使用'\ t'会将它留给编译器来替换正确的值(9或其他)。 – 2011-06-09 06:30:20

相关问题