diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-02 18:05:01 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-02 18:05:01 +0100 |
| commit | a5a197590e45494dc31f0d2fc8fb13194b3975c9 (patch) | |
| tree | f3350feda6ac6549a2b5fc4b45d9ca19f86345d0 /cpp01/ex07 | |
| parent | 7d6a4c877de8048ec5fbea4a563b3d09c8976105 (diff) | |
| download | piscine_cpp-a5a197590e45494dc31f0d2fc8fb13194b3975c9.tar.gz piscine_cpp-a5a197590e45494dc31f0d2fc8fb13194b3975c9.tar.bz2 piscine_cpp-a5a197590e45494dc31f0d2fc8fb13194b3975c9.zip | |
cpp01 ex05 wip, ex06
Diffstat (limited to 'cpp01/ex07')
| -rw-r--r-- | cpp01/ex07/Makefile | 35 | ||||
| -rw-r--r-- | cpp01/ex07/main.cpp | 56 | ||||
| -rwxr-xr-x | cpp01/ex07/test.sh | 5 | ||||
| -rw-r--r-- | cpp01/ex07/test1 | 6 | ||||
| -rw-r--r-- | cpp01/ex07/test2 | 5 |
5 files changed, 107 insertions, 0 deletions
diff --git a/cpp01/ex07/Makefile b/cpp01/ex07/Makefile new file mode 100644 index 0000000..7a649fc --- /dev/null +++ b/cpp01/ex07/Makefile @@ -0,0 +1,35 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: cacharle <marvin@42.fr> +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2020/02/02 17:05:31 by cacharle #+# #+# # +# Updated: 2020/02/02 17:58:08 by cacharle ### ########.fr # +# # +# **************************************************************************** # + +CXX = clang++ +CXXFLAGS= -Wall -Wextra #-Werror + +SRC = $(shell find . -type f -name "*.cpp") +OBJ = $(SRC:.cpp=.o) + +NAME = replace + +all: $(NAME) + +$(NAME): $(OBJ) + $(CXX) -o $@ $^ + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c -o $@ $< + +clean: + $(RM) $(OBJ) + +fclean: clean + $(RM) $(NAME) + +re: fclean all 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(); +} diff --git a/cpp01/ex07/test.sh b/cpp01/ex07/test.sh new file mode 100755 index 0000000..69cdc43 --- /dev/null +++ b/cpp01/ex07/test.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +make all +./replace test1 bonjour aurevoir +./replace test2 occ many diff --git a/cpp01/ex07/test1 b/cpp01/ex07/test1 new file mode 100644 index 0000000..2851ba4 --- /dev/null +++ b/cpp01/ex07/test1 @@ -0,0 +1,6 @@ +bonjour je suis un +charles +avec quelque bonjour +dans ce fichier +bonjour +hi im bonj diff --git a/cpp01/ex07/test2 b/cpp01/ex07/test2 new file mode 100644 index 0000000..227746e --- /dev/null +++ b/cpp01/ex07/test2 @@ -0,0 +1,5 @@ +occ occ occ hocket + +lalala occ asdfasdf occ + +occ occ occ occ |
