fscanf 함수 질문입니다.
글쓴이: 등짝을보자 / 작성시간: 목, 2006/10/12 - 9:21오후
#include
int main()
{
FILE *fp;
int i;
float j;
char *str;
fp = fopen("data","w");
fprintf(fp,"%d %g %s\n",123,12.345,"hello");
fclose(fp);
fp = fopen("data","r");
fscanf(fp,"%d %g %s",&i,&j,str); // 이 부분입니다. <---------------------
printf("%d %g %s\n",i,j,str);
fclose(fp);
}
여기보시면 fscanf 에서 error 가 뜨더군요 왜 그런지 모르겠습니다.
이 소스파일은 리눅스 C 프로그래밍 한빛미디어 책에 나온 내용입니다..예제 11_7.c
파일입니다.
fscanf 을 하면 세그멘테이션 오류라고 나오더군요
이부분이 왜그런건가요?
이거 정오표도 못구하겠더군요...
그리고 다른예제을 보면 stdio.h 에서 gets 함수 못쓰지않나요?
이것도 포함되어있던데 gets함수쓸라면ncurses 써야되는거아닌가요?
Forums:
소스가 다
소스가 다 없긴하지만 문제는 str이 그냥 포인터만 달랑 있어서 fscanf()에서 팅~~
아래 코드 추가 하셔야 될듯..
- 수정 : include할때 괄호가 제대로 안 나와 "로 처리함
질문의 정확한 의도를 모르겠네요..
단순히 소스만 올려놓고 부가 설명이 없는거 같은데 어떻게 하라는건지-_-;
제가 생각하기로는
fprintf로 파일에 쓰고 fscanf로 파일로 읽는데
(문제는 %g의 의미는 잘모르겠고;; 보통 %f를 사용하지 않는지??)
str때문에 문제가 발생할거 같네요.
str을 단순히 char *로 선언을 하셨는데
scanf 함수로 읽은 자료를 str에 저장을 할려니 공간이 없어서 문제가 발생할 것입니다.
char *str 보다는 char str[10] 이렇게 선언하시는게 맞는듯;;
아~~
아...죄송합니다....-_-;
맙소사.....저게 저런글이 아닌데.
밑부분이 빠져군요...이건참.....
나머지 부분이 짤려어요...
지금 소스가없어서 그러니 나중에 학교에가서 다시 올리겠습니다..이거참...-_-;
softon 님이 쓰신것처럼 소스어떻게 적나요?
저렇게 적어야 소스가 안짤리나보군요...
감비노도 궁금해하더라구..등짝!..등짝을보자!..
감비노도 궁금해하더라구..등짝!..등짝을보자!..
소스올립니다..
문제 해결했습니다...
s4bz님이 말씀하신것처럼 *str 을 str[10] 으로 교체하니 되는군요..
감사합니다.
밑에는 소스입니다...그리고 사각형안에 소스집어넣어서 글쓰는거 어떻게 하는지 아시나요?
#include
int main()
{
FILE *fp;
int i;
float j;
char str[10];
fp = fopen("data","w");
fprintf(fp,"%d %g %s\n",123,12.345,"Hello");
fclose(fp);
fp = fopen("data","r");
fscanf(fp,"%d%g%s",&i,&j,str);
printf("%d %g %s\n",i,j,str);
fclose(fp);
}
감비노도 궁금해하더라구..등짝!..등짝을보자!..
감비노도 궁금해하더라구..등짝!..등짝을보자!..
소스를 넣고 싶을때는..
<code>와 </code> 사이에 소스 넣으시면 됩니다.
아~~
댓글 달기