字计数程序未检测到文本文件中的双换行

时间:2018-07-27 22:16:08

标签: c

好吧,只是在C中创建一个基本的单词计数程序,该程序从.txt文件读取,而我只是停留在实际的单词计数功能上,而没有从文件中检测到双换行符,这是代码的特定位:

while((c = fgetc(file)) != EOF)
{ 
    if(c == ' ')
        count++;

    if(c == '\n')
        count++;

    if (c == '\n\n')
        count--;
}
printf("words = %d\n", count);

因此,只有前两个if语句起作用,而第三个if语句什么也不做,我希望这样做可以减少计数器,因为我不希望将双换行符视为一个单词。有人知道解决方案吗?我搜索了一段时间,但没有发现此特定问题。

1 个答案:

答案 0 :(得分:0)

当遇到双换行符时,var postData = [String]() var Handle:DatabaseHandle? override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self guard let uid = Auth.auth().currentUser?.uid else {return} let database = Database.database().reference() Handle = database.child("Shifts").child("7 27").observe(.value) { (snapshot) in print(snapshot) let post = snapshot.value as? String if let actualPost = post{ self.postData.append(actualPost) self.tableView.reloadData() } } } 将被读取两次,从而在每次迭代时触发第二个\n,因为if一次只能读取一个字符。对于主要问题,可以通过引入额外的标记来轻松实现双换行的检测。这种方法可能应该扩展为处理各种单词分隔符。

fgetc