Init commit basic stdin reading

This commit is contained in:
Stephen Seo 2023-12-14 17:00:08 +09:00
commit 5709799fdd
3 changed files with 57 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/dvorak_typing_practice
/objects/

26
Makefile Normal file
View file

@ -0,0 +1,26 @@
ifdef RELEASE
CXX_FLAGS = -Wall -Wextra -Wpedantic -O3 -DNDEBUG
else
CXX_FLAGS = -Wall -Wextra -Wpedantic -Og -g
endif
OBJDIR = objects
SOURCES = src/main.cc
OBJECTS = $(addprefix ${OBJDIR}/,$(subst .cc,.o,${SOURCES}))
all: dvorak_typing_practice
dvorak_typing_practice: ${OBJECTS}
${CXX} ${CXX_FLAGS} -o dvorak_typing_practice $^ -lraylib
${OBJDIR}/%.o: %.cc
@mkdir -p $$(dirname $@)
${CXX} ${CXX_FLAGS} -c -o $@ $<
.PHONY: clean
clean:
rm -rf ${OBJDIR}
rm -f dvorak_typing_practice

29
src/main.cc Normal file
View file

@ -0,0 +1,29 @@
#include <string>
#include <iostream>
std::string get_next_word() {
std::string word;
while (std::cin.good()) {
int in = std::cin.get();
if (in != std::char_traits<char>::eof() && in != ' ' && in != '\n' && in != '\r') {
word.push_back((char)in);
} else if (in == ' '|| in == '\n' || in == '\r' || in == '\t') {
break;
}
}
return word;
}
int main() {
std::string word;
do {
word = get_next_word();
if (!word.empty()) {
std::cout << word << '\n';
}
} while (!std::cin.eof());
return 0;
}