본문 바로가기
반응형

Programming/C++8

리눅스 파이프 예제 아직도 리눅스 파이프를 쓰는 경우가 있는지, 가끔씩 파이프 프로그램을 지식인에서 물어보는 경우가 있네요. pipe 는 두개의 프로세스간에 통신 채널을 열어주는 역할을 합니다. 두개의 파일 디스크립터가 하나는 쓰기용, 다른 하나는 읽기용으로 연결이 됩니다. 프로세스는 fork() 에 의해서 열어주면 되고요. 이것을 이용하면 다양한 기능들을 할 수 있지만, 요즘은 쓰레드 형태로 프로그램을 많이 짜서 pipe() 함수와 fork() 함수 이용도가 떨어진 것 같네요. 이곳에 간단한 예제를 올립니다. 두개의 프로세스를 열고, 1부터 1,000까지의 합을 구하는데, 전반부는 자식 프로세스에서 합을 구하고, 그 합을 pipe를 통하여 보내주면, 후반 부 합을 부모 프로세스에서 구한 후에, 그 결과를 차일드 프로세스에.. 2019. 12. 25.
로또 출력하기 지식인에서 1:1 질문이 들어와서, 답변을 해주었는데, 마감하고 비공개 처리해서, 여기에 글을 남기네요. 홍길동이라는 사람이 늘 같은 번호로 로또를 사는데, 로또에 당첨된 내역을 출력하는 문제입니다. 원소스가 너무 엉망이라서 좀 많이 고쳤어요. 사실 프로그램 자체는 어려울게 없습니다. 배열로 숫자를 그대로 저장하면, 정렬도 안 되어 있고, 로또번호를 검증하는 것 자체가 오래걸리죠. 그리고 보너스 숫자 처리도 귀찮고요. 그래서 일반숫자는 2를, 보너스 숫자는 1을 넣는 방식으로 짜보았습니다. #include int main(void) { int luck[5][6]= {{1,2,3,4,5,6}, {10,15,25,35,40,42}, {1,9,11,22,23,25}, {9,28,31,34,35,36}, {1,.. 2019. 11. 28.
초성 표시하기 이 프로그램은 전에 어떤 분이 부탁을 해서 간단하게 짜본 프로그램입니다. 한글을 입력하면, 초성만 표시하는 프로그램입니다. 현재는 하나의 단어만 입력받게 되어 있지만, 조금만 손을 보면, 영문자나 여러 단어도 처리할 수 있게 만들 수 있습니다. 프로그램은 간단합니다. "나다라마...하"와 같이 초성의 첫번째 글자들을 가지고 범위를 인식한 후에 그것을 "ㄱㄴㄷㄹ...ㅎ"에 맞게 출력합니다. 작성된 소스입니다. // This program converts a Korean string into a series of consonants // and prints them out. #include void main() { char str[128]; // character array to store user inpu.. 2014. 12. 26.
마크로를 이용해서 문자열 찍기 C/C++ 언어에서 마크로를 사용하면 다양한 작업을 할 수 있습니다.그런데 의외로 이 마크로를 잘 이용하지 못 하는 사람들이 많습니다. 몇가지 마크로와 관련한 팁을 알려드릴께요. 1) 마크로를 이용한 디버그 메세지 찍기. 디버그 메세지를 찍고 싶다면, 다음과 같이 이용해보세요. #include #define OUTDEBUG(fmt, args...) { char s[128]; sprintf(s, fmt " : %s(%d)", ##args, __FILE__, __LINE__); puts(s); } int main() { char filename[] = "a.txt"; OUTDEBUG("%s file open error.", filename); } 윈도즈에서는 아래 형식밖에 안 되네요. #include #de.. 2014. 12. 2.
문자열 처리 [질문] 질문드립니다. ^^; char lhlParsingData[100][256]; char StrTmp = "ABC|||DEF"; 토근 구분자 "|" 하나를 사용합니다. strtok 함수를 사용해서 lhlParsingData[arry] 에 저장하려고 합니다. 제가 원하는건.. lhlParsingData[0] = "ABC" lhlParsingData[1] = "" lhlParsingData[2] = "" lhlParsingData[3] = "DEF" 값을 원하는뎅... 로그를 찍어보면.. lhlParsingData[0] = "ABC" lhlParsingData[1] = "DEF" 제가 원하는 값으로 쪼갤수 없나여 ? (기타 다른 함수를 사용 해서라도..???) [답] strtok(...)으로는 어렵습니.. 2014. 9. 26.
C++로 문자열 입력받아서 출력 변환하기.. [질문] 문자열을 입력받아서, 예를 들어서 i am a student라고 입력하면, studentaami 로 나오게 하는 프로그램이 필요합니다. [답] 작성하는 방법은 여러가지가 있겠지만, 배열을 이용해야 합니다. 그리고 문자열을 단어로 읽어야 하고요. gets()로 입력받고, strtok() 을 이용해서 문자열을 분리하면 편할 듯 하네요. #include #include void main() { char *words[100]; int count = 0; char str[100]; char *t; int i; printf("Enter the string : "); gets(str); for( t = strtok(str, " ") ; t ; t = strtok(NULL, " ") ) words[count+.. 2014. 9. 24.
728x90