c++ - C 字符串 :\n & ' ' not detected

标签 c++ c

我已经彻底搜索了我的问题的答案,但没有太大的成功。我希望这里有人可以帮助我。 我有一个简单的代码,它从文件中读取 1 行并计算该行中的字符数和单词数。我使用空白字符来确定新单词何时开始,并使用\n 来确定该行何时结束。

出于某种原因,从未检测到空格,程序进入无限循环。 如果我将缓冲区初始化为\n,就会发生这种情况。如果我不这样做,即使是\n 也不会被检测到。

提前致谢。

memset(&buf[0], '\n', sizeof(buf));

read(fd, &buf[0], sizeof(buf));

while(buf[i] != '\n') {      
    while(buf[i] != ' ') {
    no_of_chars++;
    i++; 
    }
      no_of_words++;
      i++;
}

我正在阅读的文件内容:“这是一个测试文件” 编译器:GCC (Ubuntu)

最佳答案

有两个问题:

memset(&buf[0], '\n', sizeof(buf));

read(fd, &buf[0], sizeof(buf) - 1); /* else read could overwrite all your line feed chars */

while(buf[i] != '\n') {
    while(buf[i] != ' ' && buf[i] != '\n') { /* else the inner while skips line feed chars */
        no_of_chars++;
        i++;
    }
    no_of_words++;
    i++;
}

关于c++ - C 字符串 :\n & ' ' not detected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677114/

相关文章:

c++ - 如何使用 SIFT 特征/描述符作为 SVM 训练的输入?

c - 在c中找到合数的最大质因数

c - 如何将 "0xbff18c08"转换为 0xbff18c08 int?

c++ - 为什么运行时库是编译器选项而不是链接器选项?

c++ - 生成的依赖关系问题

c++ - 从预建的 BSP 树渲染?

C++ 使用指针进行选择排序函数

c++ - regex_match 未按预期工作

c++ - Qt QGraphicsSvgItem 缩放和调整大小

c - 如何用 C 实现分层并发有限状态机 (HCFSM)?