aboutsummaryrefslogtreecommitdiff
path: root/cpp01/ex07/main.cpp
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-02-02 18:05:01 +0100
committerCharles <sircharlesaze@gmail.com>2020-02-02 18:05:01 +0100
commita5a197590e45494dc31f0d2fc8fb13194b3975c9 (patch)
treef3350feda6ac6549a2b5fc4b45d9ca19f86345d0 /cpp01/ex07/main.cpp
parent7d6a4c877de8048ec5fbea4a563b3d09c8976105 (diff)
downloadpiscine_cpp-a5a197590e45494dc31f0d2fc8fb13194b3975c9.tar.gz
piscine_cpp-a5a197590e45494dc31f0d2fc8fb13194b3975c9.tar.bz2
piscine_cpp-a5a197590e45494dc31f0d2fc8fb13194b3975c9.zip
cpp01 ex05 wip, ex06
Diffstat (limited to 'cpp01/ex07/main.cpp')
-rw-r--r--cpp01/ex07/main.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/cpp01/ex07/main.cpp b/cpp01/ex07/main.cpp
new file mode 100644
index 0000000..fbef95f
--- /dev/null
+++ b/cpp01/ex07/main.cpp
@@ -0,0 +1,56 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* main.cpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/02/02 17:08:28 by cacharle #+# #+# */
+/* Updated: 2020/02/02 18:00:25 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+# include <iostream>
+# include <fstream>
+# include <string>
+
+int main(int argc, char **argv)
+{
+ if (argc != 4)
+ {
+ std::cerr << "Usage: " << argv[0] << " filename s1 s2";
+ return 1;
+ }
+ std::string filename(argv[1]);
+ std::string find_str(argv[2]);
+ std::string replace_str(argv[3]);
+
+ std::ifstream file(filename);
+ std::ofstream outfile(filename + ".replace");
+ if (!file)
+ {
+ std::cerr << "Could not open " << filename;
+ outfile.close();
+ return 1;
+ }
+ if (!outfile)
+ {
+ std::cerr << "Could not create " << filename << ".replace";
+ file.close();
+ return 1;
+ }
+ std::string line;
+ while (std::getline(file, line))
+ {
+ while (true)
+ {
+ size_t i = line.find(find_str);
+ if (i == std::string::npos)
+ break;
+ line.replace(i, find_str.length(), replace_str);
+ }
+ outfile << line << std::endl;
+ }
+ file.close();
+ outfile.close();
+}