파일출력스트림 fopen 질문이요~
볼1매그녀
질문 제목 : fopen 질문 있습니다.질문 내용 :
#include stdio.h
int main ()
{
file *fp = fopen(a.txt, r);
char buf[20]; // 내용을 입력받을 곳
if(fp == null)
{
printf(read error !! \n);
return 0;
}
fgets(buf, 20, fp);
printf(입력받는 내용 : %s \n, buf);
fclose(fp);
return 0;
}
/* fgets 로 a.txt 에서 내용을 입력 받는다. */
#include stdio.h
int main ()
{
file *fp = fopen(a.txt, r);
char buf[20]; // 내용을 입력받을 곳
if(fp == null)
{
printf(read error !! \n);
return 0;
}
fgets(buf, 20, fp);
printf(입력받는 내용 : %s \n, buf);
fclose(fp);
return 0;
}
위의 코드에서요, fgets(buf, 20, fp);
부분 있잖아요~. 여기서, fp를 *fp 로 바꿔야 하는 거 아닌가요...?
fp는 스트림의 주소값을 리턴하니까 *fp 로 해야 만들어진 파일 내부의 문자를 가리킬 수 있는 거 아닌가요~?헷갈려요..
포인터의 개념으로 하면 이해가 안 되요.. 어디가 어떻게 잘 못 된 것일까요~?
fp로 하면 정상적인데 *fp 로 하면 버그나와요~
-
핫보라
아~! 정말 감사합니다. 이제야 이해가 되요~ 진짜 감사드려요 ㅎㅎ. 깨달을 때의 쾌감이란!! 정말정말 감사합니다~
-
들꿈
fgets라는 함수는 난 파일에서 한번에 한줄을 읽어올테니 읽어올 파일의 주소를 내놔라 하는 함수라는 겁니다
그 파일의 주소가 fp구요 주소를 입력받았으니 fgets함수가 그 주소를 따라가서 파일을 읽는겁니다
우리는 주소만 주면 되지 파일의 내용을 줄 필요는 없는겁니다 -
횃눈썹
아.. 제가 이해를 잘 못하나봐요~^^;; fp 에는 a.txt 의 주소가 들어있으니까, *fp 라고 fgets의 인자에 *fp라고 넣어야, fp에 들어있는 주소값(a.txt의 주소)에 있는 내용(파일내용)을 가리키는 거 아닌가요..?
처음에 답변해주신 내용이 무슨 말씀인지 잘 모르겠어요 ㅜㅜ -
쥬디시어스
fp에는 a.txt의 주소가 들어있습니다 그래서 파일포인터죠 파일의 주소를 가지고 있으니까요
fp는 *fp 로 된다는게 무슨말인지 이해가 가지 않습니다 -
중독적
그럼 fgets(buf, 20 ,fp )라고 쓰면, fp라는 인자는 \a.txt\라는 주소값을 fp에 넣고, fp는 *fp 로 된다는 말씀이신가요 ~?
-
큰모듬
fgets는 헤더파일에
fgets(_Out_z_cap_(_MaxCount) char * _Buf, _In_ int _MaxCount, _Inout_ FILE * _File);
이렇게 정의되어 있습니다
입력받는 인자가 파일포인터이므로 fp를 넣어주는것이 맞습니다
*fp라고 한다면 포인터에 저장된 주소의 메모리값이 들어가므로 에러가 납니다
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |
2691592 | 동적할당 이용 배열선언 질문입니다.ㅠㅠ (3) | 허리달 | 2025-04-15 |
2691542 | /=의 용도를 알려주세요 ㅠㅠ! (2) | 아라 | 2025-04-14 |