검색결과 리스트
C++에 해당되는 글 3건
- 2010.10.17 [Visual Studio2005] strtok, strtok_s, strtok_r 함수 사용하기. (3)
- 2008.11.14 [C++] namespace의 간단 사용기 (2)
- 2008.04.11 [C/C++]파일 읽기 관련 (1)
글
그러나 C++을 사용하게 될 때 구현하기 귀찮(?)아서 기존의 C 라이브러리 함수를 이용하게 되는데, 개인적으로
가장 자주 사용하는것이 strtok와 atoi입니다.
비주얼 스튜디오 2005 이후에서는 strtok를 이용하면 경고를 출력해줍니다.
이를 무시하고 코딩을 하는 경우가 많았는데........이를 무시하면 정말..무시무시한 디버깅의 세계로 빠져들 수 있으니 항상 조심하셔야합니다.
결론부터 말씀드리자면..strtok 함수는 비주얼 스튜디오 6.0 에서는 정상 작동하나, 그 이후 버전에서는
실행은 되지만 뒤에 쓰레기 값이 박히는 경우가 종종 발생합니다.
이를 대체하기 위해서 strtok_s를 이용하게 됩니다. 사용법은 아래 링크를 타고 가시면 됩니다.
출처 : http://harmonize84.tistory.com/112
그런데 여기서 한가지 더 문제..strtok_s를 윈도우에서만 존재하는 함수라는 것입니다..
즉, 리눅스에서 같은 소스를 실행하면 에러가 난다는 것입니다.(물론 g++ 컴파일러 사용..)
그래서 다시 strtok로 변경하게 되면..쓰레기 값은 출력되지 않으나..자세히 보면 정상적인 출력이 아닌 경우가 발생합니다.
그래서 여기서 해결 방법은 strtok_r을 이용하는것입니다.
사용법은 man 페이지를 참고하세요 ~_~)~
'공부방 > 씨,씨뿔뿔' 카테고리의 다른 글
[Visual Studio2005] strtok, strtok_s, strtok_r 함수 사용하기. (3) | 2010.10.17 |
---|---|
[STL] sort 삽질. (0) | 2009.09.18 |
[스팸분류] Paul Graham (0) | 2009.02.11 |
2006년도에 작성한 지뢰찾기.... (0) | 2008.12.02 |
[C++] namespace의 간단 사용기 (2) | 2008.11.14 |
전처리문에 대한 깔끔한 정리!! (4) | 2008.11.11 |
설정
트랙백
댓글
글
솔직히 전에 듣기로는 그냥 타자 여러번 치기 힘드니까 쓰는 것이라고 이해했습니다.
물론 맞는 말이기도 한 것 같습니다 =_-;
그런데 오늘 www.winapi.co.kr(나의 절대적인 레퍼런스)에서 심심해서 강의를 보는 도중 namespace
에 대해서 나와있었습니다.
"오..그렇구나..오? 오~ 오!!!! 대박인데!!!"
라고 생각을 하며 아래와 같은 소스를 실험해 봤습니다.
namespace me
{
int a;
int b;
void print();
class Test
{
};
}
void me::print()
{
cout<<"!!"<<endl;
}
int main()
{
me::a = 10;
me::Test d;
cout<<me::a<<endl;
me::print();
return 0;
}
결론은 다 됩니다..
구조체든..클래스든..뭐든지 간에 다 들어가서 박힐 수가 있습니다.
순간 번뜩!! 하면 뇌리를 스친 것이 있는데.....
그렇다면...클래스끼리 묶어두면 좋지 않을까? 하는 생각이 들었습니다.
함수끼리 묶어서 클래스 만들 듯이 클래스끼리 묶어서 namespace 안에 넣어두는..
그래서 선배님께 여쭤보았더니
"원래 이렇게 쓰잖아~"
두둥....역시 선배님은 모르는게 없습니다 =ㅅ=;;;
대학교 4학년에 이제야 깨우친..namespace.......
도대체 이런 것들은 누구에게 배워야 하는지..ㅠ_ㅠ
아무튼..오늘도 뇌에 나노미터의 줄을 하나 더 그었군요 =ㅅ-)v
'공부방 > 씨,씨뿔뿔' 카테고리의 다른 글
[스팸분류] Paul Graham (0) | 2009.02.11 |
---|---|
2006년도에 작성한 지뢰찾기.... (0) | 2008.12.02 |
[C++] namespace의 간단 사용기 (2) | 2008.11.14 |
전처리문에 대한 깔끔한 정리!! (4) | 2008.11.11 |
[C++]파일 메모리에 로드한 후에 출력하면 가장 뒤에 쓰레기값 출력문제 (6) | 2008.09.22 |
STL vector 의 기본 사용방법(STL::VECTOR) (4) | 2008.04.15 |
글
간만에 C++로 파일처리를 좀 하려니까..초반부터 캐 삽질을 했습니다.
일단 소스를 보시죠.
================[소스내용]====================
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void main()
{
fstream ComeIn;
string temp;
char ss;
int i=0;
ComeIn.open("한글.txt",ios::in);
while(1)
{
if(ComeIn.fail())break;
ComeIn >> temp;
cout<<temp<<endl;
i++;
}
cout<<i<<endl;
cout<<"End of Classification!!!"<<endl;
ComeIn.close();
}
=======================[소스 끝]===============================
저렇게 했더니 이 놈이 캐 삽질을..파일을 아예 찾지도 못하더군요..
그래서 혹시나 해서 ComeIn.Open("한글.txt",ios::in) 이 부분을 ComIn.Open("asd.txt",ios::in)
으로 바꿔봤더니..되더군요..
참고로 Visual Studio2005 를 사용했습니다.
유니코드 어쩌고 저쩌고 할때는 언제고.. 정작 파일명은 읽어오지를 못하나 봅니다.
근데 제 기억으로는 한글 파일명도 잘 읽어왔던 것으로 기억이 되는데.....
여하튼 한글보다는 영어로 써야겠습니다!!!
※파일명은 항상 영어로 하는 습관을 키웁시다!!
(File name is must be english!!!!) 영어 공부중이라..-_-..맞는지 몰겠네요 ㅋㅋ
'공부방 > 씨,씨뿔뿔' 카테고리의 다른 글
[C++]파일 메모리에 로드한 후에 출력하면 가장 뒤에 쓰레기값 출력문제 (6) | 2008.09.22 |
---|---|
STL vector 의 기본 사용방법(STL::VECTOR) (4) | 2008.04.15 |
[C/C++]파일 읽기 관련 (1) | 2008.04.11 |
[C++]EOF를 사용하지 않고 파일을 다 읽기 (1) | 2008.03.25 |
[C/C++]폴더 검색 함수 (3) | 2007.11.12 |
[C/C++]연산자 우선순위..포인터관련 (1) | 2007.11.09 |
linux의 경우 _r이 붙은것들은 대부분 thread-safe 함수들입니다. 단일쓰레드에서는 문제가 발생하지 않습니다. 물론 권장은 하겠지만요. VS에서 경고를 출력하는 이유는 deprecated 된 함수이기 때문일겁니다. 윈도우 진영에서는 아예 deprecated function으로 분리했나보네요.
좋은 답변 감사합니다. 왜 권장을 하는지 이해가 안 됐었는데 속이 다 시원하네요~
좋으면 좋고 싫으면 싫은 거지, 뭐가 이렇게 어렵고 복잡하냐구