특정 파일에서 특정 문자열을 찾는 프로그램, 리다이렉션 시 처리방법
솔잎
질문 제목 : 특정 파일에서 특정 문자열을 찾는 프로그램, 리다이렉션 시 처리방법□ 프로그램 수행방법
-. FindFunc.exe [파일명] [찾을문자열]□ 문제점
-. FindFunc.exe *.* [찾을문자열] test.txt 방식으로 수행 시, 비정상 루프 발생됨.
-. 특정 문자열을 찾은 결과 값인 test.txt 파일을 읽어들여서, 또 다시 결과 값을 test.txt 파일로 저장하는 동작을 반복□ 질문사항
-. 위와 같이 리다이렉션 수행시에도 test.txt 파일을 읽어들이지 않고 무시하는 방법질문 내용 :
안녕하세요.
위에 질문 요약에서와 같이, 파일명을 *.* 로 입력하여 리다이렉션을 수행하면
결과파일을 읽어들여서, 또 결과를 적는 방식의 비정상 루프가 발생됩니다.리다이렉션을 하더라도, 결과 파일을 읽어들이지 않는 방법에 어떤 것이 있을까요?
아래 소스코드를 참조하시고, 많은 조언 부탁드립니다. ^ ^ 소스 코드 #include stdio.h#include dir.h#include stdlib.h#include string.h#include windows.h
#define MIN 3 // 최소 필요한 인자의 갯수#define BUF 500 // 문자열 버퍼의 크기
int search_func(char *str, char *search); // 문자열을 찾아서 출력하는 함수
int main(int argc, char **argv){ int name_num = argc-2; // 읽어들인 파일의 갯수를 저장하는 변수 : 프로그램명, 찾을 문자열을 제외한 argc 수 int string = argc-1; // 찾을 문자열 int i; // argv[i] 형식으로 접근하기 위한 변수 if(argc MIN) { printf(FindFunc.exe [파일명] [찾을단어] 형식으로 입력하세요!\n); return -1; } for(i=1; i=name_num; i++) { search_func(argv[i], argv[string]); Sleep(1); // 루프를 조금 천천히 돌게 하기 위해서 넣은 딜레이 } return 0;}
int search_func(char *str, char *search){ char buffer[BUF]; FILE *fp; fp = fopen(str, r); if(fp == NULL) { printf(파일을 열 수 없습니다. \n); printf(에러파일 : %s\n\n, str); return -1; } while(fgets(buffer, BUF, fp)) { if(strstr((const char *)buffer, (const char *)search)) printf(%s // %s, str, buffer); } fclose(fp); return 0;}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2702438 | C언어에서 Addr이 뭔가요? (6) | 밝은빛누리예 | 2025-07-23 |
2702384 | 흠.. 피보나치 수열을... for문으로 만들었는데요....ㅠㅠ;; (1) | 계획자 | 2025-07-22 |
2702354 | c언어 하나더 질문드리겠습니다^^ | 유키 | 2025-07-22 |
2702323 | 배열 최빈값 구하는 소스 좀 갈켜주셈. | PrinceSs | 2025-07-22 |
2702296 | 오류좀 찾아주세요! 스왑함수 (1) | 지우 | 2025-07-21 |
2702232 | 글씨를 검은색, 바탕을 하얀색으로 하는방법좀 가르쳐주세요 !! | 놓아주세요 | 2025-07-21 |
2702205 | for문 중첩ㅠㅠ (2) | 한뎃집 | 2025-07-21 |
2702177 | 소리나오게 하는법! | 가지 | 2025-07-20 |
2702065 | 함수 이해 (2) | 뽀대미녀 | 2025-07-19 |
2702007 | 코드 질문좀요.... | 지희 | 2025-07-19 |
2701979 | c++ 시간 표시 때문에 질문입니다. | 남은 | 2025-07-19 |
2701949 | 특정 파일에서 특정 문자열을 찾는 프로그램, 리다이렉션 시 처리방법 | 솔잎 | 2025-07-18 |
2701920 | C언어 초보적인 질문좀드릴게요 (3) | 가랑비 | 2025-07-18 |
2701864 | 역카운트 (3) | 하나 | 2025-07-18 |
2701839 | 이번에 C언어 갓 입문한 초보인데요 (3) | 히나 | 2025-07-17 |
2701812 | 파일 입출력다음으로 뭘해야할지 잘 모르겟네요;; | 뿡뿡몬 | 2025-07-17 |
2701754 | strcmp,strcpy를 좀더 이해를 하기위해서 간단히 만들었는데... | 말달리자 | 2025-07-17 |
2701724 | 배열초기화도중 이니셜라이저 가 너무 많다고 나오네요! (2) | 라임나무 | 2025-07-16 |
2701697 | 6.0에서는 잘되던 프로그램이 2008에서는 잘안된답니다. 한번 아시는분 댓글부탁드립니다. (1) | 빵순 | 2025-07-16 |
2701644 | 문자가 알파벳인지 검사하기(isalpha) | 마음 | 2025-07-16 |