줄 지우기

manatails007의 이미지

C 언어로

텍스트 파일 내용:

linuxcomputer
webkldp
systemunix
win32bit

이런 파일이 있을때 파일을 열어서 kldp란 문자열을 찾은 뒤 그 문자열이 들어간 줄 전체를 지우고

linuxcomputer
systemunix
win32bit

를 저장하려면 어떻게 해야 할까요

bookgekgom의 이미지

리스트 템프;

while(파일에 줄이 있을 동안){
char* 줄 = 한줄받고;
if(줄이 "kldp" 를 갖지 않는다면){
템프에 줄을 추가;
}
}

파일에 템프를 다시 입력();

문제는 이렇게 하면 느려요. 엉엉

제가 알기론 파일을 읽을때 특정 장소의 값을 부를수있고

특정 장소로 갈수 있다고 알고 잇습니다.

그런데 초큼 복잡하네여.

펄 같은 경우는 더 쉬울것 같은데....

씨라고 하셨으니 난 모름.

---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

sephiron의 이미지

system("grep -v kldp file1 > file2");

물론 교수님이 화내실 수도 있습니다.

glay의 이미지

아놔

* 파닥파닥 *

--------------- 절취선 ------------------------
하늘은 스스로 삽질하는 자를 삽으로 팬다.

http://glay.pe.kr


--------------- 절취선 ------------------------
하늘은 스스로 삽질하는 자를 삽으로 팬다.

http://glay.pe.kr

manatails007의 이미지

ㅋㅋㅋ 그런데 일반 리눅스 시스템이 아니라서;;

cinsk의 이미지

1. 누군가 저런 일을 시킨다면, sephiron님처럼 shell에서 걍~ 할테고,

2. 숙제라면 bookgekgom님처럼 할테고,

3. 심심하면? mmap으로 file 내용을 mapping한 다음에, 해당 문자열을 찾은 다음,
memcpy로 해당 줄을 덮어쓰고, truncate()하는 방법도 있을 것 같군요.

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/