How to replace all the spaces in a text file with an underscore (_) in C++

2 Answers

0 votes
#include <iostream>
#include <fstream>
#include <ostream>
#include <string>

using std::cout;
using std::endl;
using std::string;

int main()
{
	char filename[32] = "d:\\data.txt";
	string s;

	std::ifstream ifs(filename);
	if (ifs) {
		char ch;
		while (ifs.get(ch))
			if (ch == ' ')
				s += "_";
			else
				s += ch;
	}
	ifs.close();

	std::ofstream ofs;
	ofs.open(filename);
	ofs << s;
	ofs.close();

	return 0;
}

/*
run:

data.txt
--------
c_c++
c#_java_php_python

*/

 



answered Jun 9, 2018 by avibootz
0 votes
#include <iostream>
#include <fstream>
#include <ostream>
#include <string>

using std::cout;
using std::endl;
using std::string;

int main()
{
	char filename[32] = "d:\\data.txt", tempname[32] = "d:\\temp.txt";
	string s;

	std::ifstream ifs(filename);
	if (ifs) {
		char ch;
		while (ifs.get(ch))
			if (ch == ' ')
				s += "_";
			else
				s += ch;
	}
	ifs.close();

	std::ofstream ofs;
	ofs.open(tempname);
	ofs << s;
	ofs.close();

	remove(filename);
	rename(tempname, filename);

	return 0;
}

/*
run:

data.txt
--------
c_c++
c#_java_php_python

*/

 



answered Jun 9, 2018 by avibootz

Related questions

1 answer 206 views
1 answer 228 views
1 answer 215 views
1 answer 158 views
...