istreambuf_iterator<T>는 istream으로부터 자료형 T에 해당하는 내용을 계속 읽는 iterator입니다. istreambuf_iterator<T>()는 placeholder로, iterator의 끝 지점을 의미합니다. 따라서 위와 같이 하면 string 임시 객체에는 inputFile로부터 char를 하나 하나씩 읽어 온 내용이 들어 가겠죠.
cronex wrote:
개인적으로 그런 식의 코딩은 별로 않좋아합니다.
가독성이 너무 떨어지기 때문이죠.
분석하려면 일일이 다 하나씩 변환 해놓고 봐야한다는....
istreambuf_iterator<T>는 istream으로부터 자료형 T에 해당하는 내용을 계속 읽는 iterator입니다. istreambuf_iterator<T>()는 placeholder로, iterator의 끝 지점을 의미합니다. 따라서 위와 같이 하면 string 임시 객체에는 inputFile로부터 char를 하나 하나씩 읽어 온 내용이 들어 가겠죠.
아 그렇군요.
답변 감사합니다.
하지만 역설적으로 저 소스는 보통의 프로그래머한테는 좋은 소스 같지 않군요.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
istreambuf_iterator<T>는 istream으로부터 자료형 T에 해당하는 내용을 계속 읽는 iterator입니다. istreambuf_iterator<T>()는 placeholder로, iterator의 끝 지점을 의미합니다. 따라서 위와 같이 하면 string 임시 객체에는 inputFile로부터 char를 하나 하나씩 읽어 온 내용이 들어 가겠죠.
아 그렇군요.
답변 감사합니다.
하지만 역설적으로 저 소스는 보통의 프로그래머한테는 좋은 소스 같지 않군요.
왠만큼 속도와 메모리를 생각해야하는 embed나 그런쪽이 아니라면 CFile을 쓰는게 제일 좋죠. ^^;
표준 입력에서 단어의 목록을 입력 받아서, 같은 단어끼리 분류해서 중복 단어를 제거한 목록을 표준 출력에 찍어주는 프로그램 입니다.
예를 들어서 banana apple banana orange pineapple apple apple pineapple
이렇게 입력하면 apple banana orange pineapple
이렇게 나와야 합니다. (꼭 정렬될 필요는 없습니다.)
python 으로는
import itertools
print ' '.join(k for k, g in itertools.groupby(sorted(a.split())))
print ' '.join(k+' '+str(len(list(g))) for k, g in tertools.groupby(sorted(a.split())))
표준 입력에서 단어의 목록을 입력 받아서, 같은 단어끼리 분류해서 중복 단어를 제거한 목록을 표준 출력에 찍어주는 프로그램 입니다.
예를 들어서 banana apple banana orange pineapple apple apple pineapple
이렇게 입력하면 apple banana orange pineapple
이렇게 나와야 합니다. (꼭 정렬될 필요는 없습니다.)
python 으로는
import itertools
print ' '.join(k for k, g in itertools.groupby(sorted(a.split())))
print ' '.join(k+' '+str(len(list(g))) for k, g in tertools.groupby(sorted(a.split())))
표준 입력에서 단어의 목록을 입력 받아서, 같은 단어끼리 분류해서 중복 단어를 제거한 목록을 표준 출력에 찍어주는 프로그램 입니다.
예를 들어서 banana apple banana orange pineapple apple apple pineapple
이렇게 입력하면 apple banana orange pineapple
이렇게 나와야 합니다. (꼭 정렬될 필요는 없습니다.)
python 으로는
import itertools
print ' '.join(k for k, g in itertools.groupby(sorted(a.split())))
print ' '.join(k+' '+str(len(list(g))) for k, g in tertools.groupby(sorted(a.split())))
Re: 감동적인 "C++ 파일 읽어오기 코드"...
그 정도로 감동하시면 C++의 iterator를 우습게 보신 겁니다. 저는 이런 걸 좋아합니다.
- 토끼군
Re: 감동적인 "C++ 파일 읽어오기 코드"...
이코드를 풀어서 보여주시면 안되나요?
상당히 어렵군요. :(
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
// fe.practice
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
Re: 감동적인 "C++ 파일 읽어오기 코드"...
개인적으로 그런 식의 코딩은 별로 않좋아합니다.
가독성이 너무 떨어지기 때문이죠.
분석하려면 일일이 다 하나씩 변환 해놓고 봐야한다는....
------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!
Re: 감동적인 "C++ 파일 읽어오기 코드"...
istreambuf_iterator<T>는 istream으로부터 자료형 T에 해당하는 내용을 계속 읽는 iterator입니다. istreambuf_iterator<T>()는 placeholder로, iterator의 끝 지점을 의미합니다. 따라서 위와 같이 하면 string 임시 객체에는 inputFile로부터 char를 하나 하나씩 읽어 온 내용이 들어 가겠죠.
제가 괜히 obfuscation을 좋아 하는 줄 아시나요? =3=333
- 토끼군
Re: 감동적인 "C++ 파일 읽어오기 코드"...
아 그렇군요.
답변 감사합니다.
하지만 역설적으로 저 소스는 보통의 프로그래머한테는 좋은 소스 같지 않군요.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
Re: 감동적인 "C++ 파일 읽어오기 코드"...
요즘도 휴대폰쪽에선 64kb확보에 목숨걸고 팀끼리 싸우는지 모르겠네요.
Re: // fe.practice
이제 이해가 갑니다.
답글 감사합니다.^^
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
표준 입력에서 단어의 목록을 입력 받아서, 같은 단어끼리 분류해서 중복
표준 입력에서 단어의 목록을 입력 받아서, 같은 단어끼리 분류해서 중복 단어를 제거한 목록을 표준 출력에 찍어주는 프로그램 입니다.
예를 들어서
banana apple banana orange pineapple apple apple pineapple
이렇게 입력하면
apple banana orange pineapple
이렇게 나와야 합니다. (꼭 정렬될 필요는 없습니다.)
python 으로는
C++ 로는
Re: 감동적인 "C++ 파일 읽어오기 코드"...
본래 성단으로 돌아가시지요. ㅡ_-);
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
Re: 감동적인 "C++ 파일 읽어오기 코드"...
퍼렁별 정복을 위해 강림하신것이 틀림없습니다. :D
퍼렁별 정복을 위해 강림하신것이 틀림없습니다. :D
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
“C++ 파일 읽어오기 코드”라고 하시길래 순간적으로 C++ 소스 코드가
“C++ 파일 읽어오기 코드”라고 하시길래 순간적으로 C++ 소스 코드가 들어있는 파일을 읽어오는 (어떤 언어로 작성된) 코드인줄 알았습니다. “파일 읽어오기 C++ 코드”였나보군요.
--
자본주의, 자유민주주의 사회에서는 결국 자유마저 돈으로 사야하나보다.
사줄테니 제발 팔기나 해다오. 아직 내가 "사겠다"고 말하는 동안에 말이다!
[quote="prolinko"]표준 입력에서 단어의 목록을 입력 받아서
이렇게 하면 한 줄이 더 줄어들겠군요...
------------------------
http://agbird.egloos.com
[quote="prolinko"]표준 입력에서 단어의 목록을 입력 받아서
itertools까지 갈 필요가 없을 텐데요.
갯수까지 세야 한다면...
- 토끼군
Re: 감동적인 "C++ 파일 읽어오기 코드"...
!(1995<=1995) && !(1995<=1995) == false
따라서 1995는 1995와 동등하지 않습니다.
참고 : Scott D. Meyers, 'Effective STL'(Addison-Wesley, 2001)
STL 대단하군요..
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
Re: 감동적인 "C++ 파일 읽어오기 코드"...
애초에 less_equal<int>를 쓸 수 없지 않나요? 반사율(reflexivity)이 성립하기 때문에 less_equal<int>가 아니라 less<int> 같은 걸 써야 합니다. (a <= a는 참이지만 a < a는 거짓이지요)
- 토끼군
Re: 감동적인 "C++ 파일 읽어오기 코드"...
장난꾸러기시군요. ^^;
Effective STL에서는 이렇게 하지 말라고 했을 텐데요.
Re: 감동적인 "C++ 파일 읽어오기 코드"...
제가 Effective STL을 보지 않아서 저렇게 하라는 건지 안 하라는 건지 상황을 몰랐습니다. :p 그런 의미에서 누군가 저에게 책 보내 주실수 있는 분... (어이어이)
- 토끼군
Re: 감동적인 "C++ 파일 읽어오기 코드"...
전 단지 이런 식으로 코드를 짜면 원하는 대로 동작하지 않는다는 걸 말한 것 뿐이라니까요! (믿거나 말거나 학교로 후다닭)
.... 이런 ....
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
copy
C++ 식
copy(istreambuf_iterator<char>(ifstream("Input.txt")), istreambuf_iterator<char>(),ostreambuf_iterator<char>(ofstream("Output.txt")));
C 식 (이식성 없음)
system("cp Input.txt Output.txt");
C 식 (이식성 있음)
FILE *i = fopen("Input.txt", "rt");
FILE *o = fopen("Output.txt", "wt");
int c;
while((c = fgetc(i)) != EOF) fputc(c, o);
하도 오래되어서 맞는지 모르겠군요.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
ESTL 중...[quote]"거의 애들 놀이 수준이죠""ST
ESTL 중...
뒤집어졌습니다 :mrgreen: :|
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
[quote="cppig1995"]ESTL 중...[quote]"