【问题标题】:Need help in reading .txt file which contains a table with blanks?在阅读包含空白表格的 .txt 文件时需要帮助吗?
【发布时间】:2011-02-16 13:32:16
【问题描述】:

考虑一下 -

“ID_REF”“GSM887”“GSM888”“GSM889”“GSM890”“GSM891”
10              -.427                        -3.841       .312 0
11              -.939           -1            -.024

现在,当我遍历包含许多此类条目的整个文本文件时,如何识别空白。我需要找到每一列的平均值,所以我如何跳过空白(空)值。如果有人能告诉我用 C++ 做这件事的方法,那将会很有帮助。

【问题讨论】:

  • keywords: 'read fixed with columns in c++',你应该检查你的数据格式是否可靠的“fixed with format”(保留所有空格和行长)。然后,在正确的位置拆分您的输入行并将这些块扫描为整数或其他任何内容。

标签: c++ text-files traversal tabular


【解决方案1】:

如果唯一的分隔符是任意数量的空格,那么你不能,因为那样

"ID_REF" "GSM887" "GSM888" "GSM889" "GSM890" "GSM891"
11                 -.939       -1            -.024 

相同
"ID_REF" "GSM887" "GSM888" "GSM889" "GSM890" "GSM891"  
11        -.939    -1       -.024 

检查字符代码,希望你有 /t 或任何制表符,而不是所有空格。


啊,既然你有标签,你的数据实际上是这样的

 "ID_REF"   "GSM887"   "GSM888"   "GSM889"   "GSM890"   "GSM891"  
    11   \t -.939    \t   -1    \t   -.024  \t         \t

您现在需要做的就是将分隔的字符串解析为数组。 像这样C: creating array of strings from delimited source string

甚至更好,橡胶靴所说的

【讨论】:

  • 是的,它有适当的标签。谢谢。现在 C++ 是如何识别标签的?
  • @Duncan 如果没有给出值,制表符之间是否有空格,或者您会找到两个(或更多)连续制表符吗?
【解决方案2】:

我同意@Matt。您可以将 txt 中的所有空格替换为逗号(将其转换为 excel 中的 csv 文件),一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2011-06-15
    • 2017-10-02
    • 1970-01-01
    相关资源
    最近更新 更多