我有以下代码打开文件并从中读取数据,然后取出相关部分并将其打印到屏幕上。
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类型,但有一个问题是有些人在打印出的单词之间有不同的空格。
我的问题是如何从单词之间删除所有空格。它们可以随机安装,并不总是存在。
提前谢谢。
答案 0 :(得分:2)
由于您的问题指出:“如何删除字词之间的所有空格”:
除了std::remove_if
之外,您还可以使用标准<algorithm>
库中的std::isspace
:
std::string mystring = "Text with some spaces";
std::remove_if(mystring.begin(), mystring.end(), std::isspace);
现在变为:
Textwithsomespaces