c++ fstream 在文件中更改 space
c++ fstream changing space in file
我想将我的文件 "ok.txt" 每 2 space 更改为一个。
那是我的代码。
fstream file1("ok.txt",ios::in|ios::out);
if (file1.is_open())
{
cout << Acces allowed" << endl;
string c;
getline(file1, c);
for (int i = 0; i < c.length(); i++)
{
if (c[i] == ' ')
c[i] = ' ';
}
file1 << c;
}
else
{
cout << "Error";
}
file1.close();
替换它:
for (int i = 0; i < c.length(); i++)
{
if (c[i] == ' ')
c[i] = ' ';
}
与:
string singleSpace=" ";
string doubleSpace=" ";
int position = c.find( doubleSpace );
while ( position != string::npos )
{
c.replace( position, doubleSpace.length(), singleSpace );
position = c.find(doubleSpace, position + 1 );
}
请注意,double space 是一个字符串,而不是单个字符。
您可以使用类似这样的替换算法:
std::string s = "bla bla bla";
std::string onespace = " ";
std::string doublespace = " ";
size_t start_pos = 0;
while(( start_pos = s.find(doublespace, start_pos)) != std::string::npos) {
s.replace(start_pos, doublespace.length(), onespace);
start_pos += onespace.length();
}
这将在 bla bla bla
中转换 s
我想将我的文件 "ok.txt" 每 2 space 更改为一个。 那是我的代码。
fstream file1("ok.txt",ios::in|ios::out);
if (file1.is_open())
{
cout << Acces allowed" << endl;
string c;
getline(file1, c);
for (int i = 0; i < c.length(); i++)
{
if (c[i] == ' ')
c[i] = ' ';
}
file1 << c;
}
else
{
cout << "Error";
}
file1.close();
替换它:
for (int i = 0; i < c.length(); i++)
{
if (c[i] == ' ')
c[i] = ' ';
}
与:
string singleSpace=" ";
string doubleSpace=" ";
int position = c.find( doubleSpace );
while ( position != string::npos )
{
c.replace( position, doubleSpace.length(), singleSpace );
position = c.find(doubleSpace, position + 1 );
}
请注意,double space 是一个字符串,而不是单个字符。
您可以使用类似这样的替换算法:
std::string s = "bla bla bla";
std::string onespace = " ";
std::string doublespace = " ";
size_t start_pos = 0;
while(( start_pos = s.find(doublespace, start_pos)) != std::string::npos) {
s.replace(start_pos, doublespace.length(), onespace);
start_pos += onespace.length();
}
这将在 bla bla bla
s