gpt4 book ai didi

c++ - 如何检查 '\t' ?

转载 作者:行者123 更新时间:2023-11-28 06:37:49 27 4
gpt4 key购买 nike

我有一段代码可以读取一个文本文件,并将文件中的每个单词转换为一个字符数组(需要是一个字符数组,不允许使用字符串),它是 Word 类的数据成员。当遇到标点符号时,所有 Word 对象都会作为链表存储到 Sentence 类中。遇到tab时,将之前的所有Sentences以链表的形式存储在Paragraph类中。我需要帮助的是一种在文本文件中检查“\t”的方法。我正在使用阅读

while(myFile >> charArray){
//stuff
}

因为这会读取一个完整的单词并将其存储在 charArray 中。如果它是一个句子的结尾,charArray[size](size 是最后一个元素)将 == '.' || ==“!” || == "?" 所以我每次都可以处理一个新的句子(我可以假设文本文件每次都会正确格式化)。我不知道该怎么做的是如何检查 '\t' 字符来创建一个新段落。 '\t' 会被 myFile >> charArray 获取吗?我试着弄乱了各种 if 语句,看看我是否可以选择一个 '\t' 字符,但我没能做到。那么如何在从文本文件读入字符数组时检查制表符呢?

最佳答案

默认情况下,

iostreams operator>> 将读取并丢弃前导空格。包括开始新段落的制表符。我建议空行也应该被视为段落分隔符。许多人在一行的开头使用一连串普通空格字符来产生缩进,而不是制表符,因此您也应该检查一下。

我的首选方法是使用 getline 读取整行文本、空格和所有内容。测试第一个字符并决定是否开始一个新段落。然后将该行加载到字符串流中并使用 operator>> 提取单个单词。这与 R Sahu 的评论非常相似......但我不会在制表符上拆分行。相反,您只关心行首的制表符/空格。

您还可以尝试使用 noskipwsreading individual whitespace characters

关于c++ - 如何检查 '\t' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26514972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com