원하는 문자열만 뽑아내기
sample.txt 라는 텍스트 파일에는
123 456 S 656 789 라는 문자열이 있습니다. 각각은 공백을 기준으로 나뉘어 있지요.
struct test{
int a;
int b;
char c;
int d;
int e;
}TEST;
해당 문자열을 위와같은 구조체에 각각을 넣는 질문을 이전에 한적이 있습니다.
답변으로 아래와같은 방법을 제시해주셨고, 제시해주신 방법대로 잘 작성하였습니다.
FILE *fp;
fp = fopen("sample.txt","rt");
fscanf(fp, "%d", TEST.a);
fscanf(fp, "%c", TEST.b);
fscanf(fp, "%d", TEST.c);
fscanf(fp, "%d", TEST.d);
그런데 한가지 궁금한점이 생겼는데요.
만약 제가 sample.txt 파일 123 456 S 656 789 이 문자열에서 두번째와 네번째만 필요한다면 어찌해야할까요?
즉 456과 656만 필요하다는것이죠.
456과 656을 뽑아내기 위해서, 123 456 S 656 789를 모두 변수를 만들어 초기화해주고, 456,656을 뽑아낸다면 메모리낭비인듯 싶어서요.
struct test{
int a;
int b;
}TEST;
구조체를 위와같이 필요한 데이터 2개만 변수를 설정해주고,
결과값 = a : 456
b : 656
위와값이 sample.txt 문자열에서 원하는 부분만 뽑아내려면 어찌해야할까요??
...
man fopen
하면 나오는 설명서 하단에 See Also 보시면 여러 함수들 있습니다.
그 설명서 방법을 생각해보세요.
fseek 으로 원하는 조합을 만드실수 있을듯 하네요.
fscanf(fp, "%*d %d %*s %d
fscanf(fp, "%*d %d %*s %d %*d", test.a, test.b);
------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
댓글 달기