C++计算文件中单词的出现次数并写入另一个文件

标签 c++ file

这段代码有什么问题? 我正在尝试在 input.txt 中搜索单词 TID 输入.txt-

一点一点 TID:fjkcgbkn

在output.txt中只显示0

#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int main()
{
int con=0;
ifstream fi;
fi.open("input.txt");
char word[3];

  while(!fi.eof())
  {
     fi.get(word,3,' ');
     if (strcmp(word,"TID") == 0)
        con++;
  }
  fi.close();

ofstream fo;
fo.open ("output.txt");
fo<<con<<"\n";
fo.close();
return 0;
}

最佳答案

是因为当你这样使用引号时:

"TID"

在内存中是这样保存的

TID\0

其中\0 是字符串结尾的标记。

您可以在“\0”末尾添加到变量 word,它应该可以工作(将大小更改为 4:)

关于C++计算文件中单词的出现次数并写入另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22421950/

相关文章:

java - 检查数据库是否存在

javascript - 使用 fs.writefilesync 写入 NodeJS 中的文件

c - 从字符串加载 C 结构

c++ - 一个类的实例是否仍然在同一进程内的线程之间共享相同的静态成员?

c++ - "Variable Array set but not used"

c++ - 构造函数的巨型 switch 语句

c++ - 频繁访问文件映射内存

c# - 有效复制多个文件

iphone - 从哪里开始制作将 MP3 文件转换为 iphone 有声读物 (M4B) 格式的程序?

c++ - 库项目的预编译 header 中定义的变量和函数是否可供使用该库的应用程序使用?