파일입출력을 이용하여 특정부분 수정하는게 잘안되는데요..
노랑이
질문 제목 : 파일입출력을 이용하여 특정부분 수정하는게 잘안되는데요..
현재 txt파일에
1,11
2,22
3,33
... 이런식으로 ,를 기준으로 데이터가 있는데요
,뒤에 있는 값만을 바꿔서 txt파일에 write를 하고 싶은데 어떤식으로 해야 하나요?
지금 fgets를 이용하여 한 라인의 값(1,11)의 값을 얻고 strtok를 이용하여 두개의 값을 구분하는것까지는
해보았는데요 두번째 내용만 수정하여 write를 하기 위해 간단한 방법이 있을까요?
-
스콜피온 2024-01-02
디스크에는 읽기 헤더와 쓰기 헤더가 각각 따로따로 있는데
fseek 함수는 읽기 헤더의 위치를 바꾸어주어서 읽는 위치를 빠르게 옮길 수 있습니다.
반대로 파일에 쓸때는 쓰려고 하는 내용을 처음부터 끝까지 모두 써야 됩니다. -
하늘 2024-01-02
저도 fgets, feek. fputs를 사용해서 저런식으로 테스트하고 있는데
이게 될듯 하면서 값이 써진것을 확인해보니 자릿수가 하나없거나..이상하게 쓰여지고 있어서 이상하네요.ㅠ -
갤1 2024-01-02
1, 11
2, 22
3, 33
이 있다면 11을 수정하고 싶을 때
fgets를 이용해서 한 line을 읽어서
fseek으로 -3또는 -4 (즉, 11의 앞자리 1에 커서가 이동되는 위치를 한번 찾아보시면 될거같네요)
이동 후에 fputs()함수를 이용해서 수정하면 될 거 같은데...
제가 지금 테스트를 해볼 수 없는 상황이어서요.
정확한 답변을 드리지 못해 죄송합니다.ㅠㅠ -
클 2024-01-02
특정부분을 수정하기 위해서는 새로덮어쓰는것밖에 없는건가요?
-
갅지돋는슬아 2024-01-02
파일입출력에서는 특정 부분만 수정하는 것이 불가능합니다. 변경된 내용 전체를 새로 써야 됩니다.
-
똘끼 2024-01-02
읔...이게 생각보다 잘안되네요;
fgets로 한 라인을 얻고
fseek로 = 다음(3)으로 이동후에 fputc로 했는데 내용이 삭제되고 이상해지네요;; -
아리솔 2024-01-02
일단 한 Line을 읽어서 구분하는거 까진 성공하셨다고 하셨으니
두 번째 11의 값을 수정 후 다시 파일에 write하기 위해
fseek함수를 이용해보시면 될 거 같습니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2690749 | 피라미드 질문드립니다 (for문 한개) | 도래솔 | 2025-04-07 |
2690718 | 함수 포인터반환 함수 질문 | 에드워드 | 2025-04-07 |
2690685 | 2중for문 도와주세여..;; | 흰추위 | 2025-04-07 |
2690655 | 팩토리얼 계산문제..질문~ (9) | 옆집꼬마야 | 2025-04-06 |
2690627 | c 변수 선언후 변수값 저장안하고 출력 | 방방 | 2025-04-06 |
2690600 | 릴리즈 모드로 컴파일해서 다른 컴퓨터에서도 실행파일을 실행할수 있는 방법 알려주세요 (5) | 제나 | 2025-04-06 |
2690576 | bin파일 저장 | 다올 | 2025-04-06 |
2690547 | C언어 뒷부분이라 너무 어려워서요;; 프로그래밍 하나만 부탁드립니다 (4) | 그루터기 | 2025-04-05 |
2690517 | cygwin에서요.. (1) | 엘보어 | 2025-04-05 |
2690486 | 문자열과 문자형이요 ~ | 다스리 | 2025-04-05 |
2690344 | 일본어 주석 깨짐 문제 (3) | 연하얀 | 2025-04-04 |
2690314 | 암호문 만들기 -비제네르- | 이퓨리한나 | 2025-04-03 |
2690292 | 왕초보자의 질문!!!!!! 도와주세요 (1) | 하랑 | 2025-04-03 |
2690269 | 정올 문제 인데.. 흠 | 반월 | 2025-04-03 |
2690237 | sizeof에서 short형을 썻는데 왜 4byte가 나올까요? (1) | 바나나 | 2025-04-03 |
2690183 | 문자열과 포인트 비교 (2) | 미즈 | 2025-04-02 |
2690154 | a -48 ? | 희미한눈물 | 2025-04-02 |
2690094 | 테트리스 질문요. | 지후 | 2025-04-01 |
2690066 | 문자열비교!! (1) | 매디 | 2025-04-01 |
2689888 | 좀도와주세요;; ㅠㅠ | 사람 | 2025-03-30 |