accumulate 모으다; 축적하다

accustomed 익숙한

achieve 이루다, 성취하다


이런식으로 들어가 있는 txt 파일을 읽으려고 하니 


char buffer[100];


while (!file.eof()) {

file >> buffer;

}


이런식으로 읽게되면 공백단위로 읽게되어 (모으다; 축적하다) 가 한번에 들어가야되는데


(모으다;) 따로 (축적하다) 따로 들어가게 된다.


영어단어와 뜻 사이에 있는 탭( '\t' ) 으로 구분하여 잘라서 사용하고 싶다면


strtok을 사용하면 된다!


////////////////////////////////////////////////////////


char* token = NULL;

char tk[] = "\t\n";

char buffer[100];

ENGLISH *tmp = NULL;


while (!file.eof()) {

memset(buffer, 0, sizeof(buffer));

file.getline(buffer, 100);


token = strtok(buffer, tk);

strcat(tmp->word, token);


token = strtok(NULL, tk);

strcat(tmp->mean, token);

}



이런식으로 getline으로 한줄을 받은 후


strtok 을 사용하여 특정 token단위로 잘라서 사용해주면 될 거 같다.


//////////////////////////////////////////////////////


원형


char* strtok(char* str, const char* delimiters);


str은 대상 문자열

delimiters는 구분자, 무엇으로 구분할 것인가를 문자열 형태로 지정


분리한 결과의 첫번째 주소값을 리턴



///////////////////////////////////////////////////////////////


중요!!!!!!!!!!!!!!!!!


token = strtok(NULL, tk);    을 쓰는 이유


첫번째 인자로 문자열의 주소값이 들어오면 거기서부터 분리를 시도하는데


만약 NULL이 들어오면 이전에 자기가 기억한 곳으로부터 분리 시도!!!!!!!

+ Recent posts