我有以下代码来打开文件并从中读取数据,然后使用relavent部分并将其打印到屏幕上。

char* search = "model name";
int Offset;
string Cpu;
ifstream CpuInfo;
CpuInfo.open ("/proc/cpuinfo");

if(CpuInfo.is_open())
{
  while(!CpuInfo.eof())
  {
    getline(CpuInfo,Cpu);
    if ((Offset = Cpu.find(search, 0)) != string::npos)
    {
       //cout << "found '" << search << " " << line << endl;
       break;
    }
  }
  CpuInfo.close();
}
Cpu.replace (0,13,"");

cout << Cpu


这通常会输出您使用的CPU类型,但是一个问题是,某些人在打印出来的字词之间会有各种空格。

我的问题是如何删除单词之间的所有空格。它们可以是随机数量,并不总是存在。

先感谢您。

最佳答案

由于您的问题指出:“如何删除单词之间的所有空格”:

除了std::remove_if,您还可以使用标准<algorithm>库中的std::isspace

std::string mystring = "Text with some   spaces";
std::remove_if(mystring.begin(), mystring.end(), std::isspace);


现在变成:

Textwithsomespaces


参考资料:
http://en.cppreference.com/w/cpp/algorithm/remove

09-27 04:48