c언어에러고쳐주세요!
가을빛
해결해주세요 ㅜㅜ저가 컴파일하면 0에러0워링뜨는데 ㅇㅇ
링크만하면 ;;; 2에러뜨네요확인해주세요 질문 내용 :
#include stdio.h
#include string.h
#include stdlib.h
#define max 100
#define filename c:\\data.txt
typedef struct struct_phonenumber{
char name[20];
char tel[20];
}phone;
int insert();
int delete();
int search();
int printall();
phone* pphone[max];
int num=0;
int main()
{
int sel, i;
int quit=0;
file* fp;
fp = fopen(filename, rt);
if(fp !=null){
while(1){
pphone[num] = (phone*)malloc(sizeof(phone));
if(fread(pphone[num]-name, 20, 1, fp)==0) break;
fread(pphone[num]-tel,20,1,fp);
num++;
}
fclose(fp);
}
while(1)
{
puts(--------메뉴--------);
puts( 1.추가하기);
puts( 2.삭제하기);
puts( 3.조회하기);
puts( 4.출력하기);
puts( 5.나가기);
printf(항목을 선택해주세요: );
scanf(%d, &sel);
switch(sel)
{
case 1:
insert();
break;
case 2:
delete();
break;
case 3:
search();
break;
case 4:
printall();
break;
case 5:
quit=1;
break;
default:
puts(1 ~ 5 사이에서 선택하세요 \n);
fflush(stdin);
}
if(quit == 1) break;
}
// save the data in file(데이터 안전저장)
fp = fopen(filename,wt);
if(fp == null){
puts(파일을 열수없습니다!);
return 1;
}
for(i=0; inum; i++){
fwrite(pphone[i]-name, 20, 1, fp);
fwrite(pphone[i]-tel, 20, 1, fp);
free(pphone[i]);
}
fclose(fp);
// ending(끝)
puts(종료);
return 0;
}
int insert()
{
if(num == max){
puts(공간이 꽉찼습니다 !\n);
return 0;
}
pphone[num] = (phone*)malloc(sizeof(phone));
puts([insert]);
puts(이름을 입력해주세요: );
scanf(%s, pphone[num]-name);
printf(전화번호를 입력해주세요: );
scanf(%s, pphone[num]-tel);
num++;
puts(------- 데이터가 추가되었습니다. \n);
return 0;
}
int delete()
{
char tmp[20];
int i;
puts([delete]);
printf(이름을 입력해주세요: );
scanf(%s, tmp);
for(i=0; inum; i++){
if(strcmp(pphone[i]-name, tmp)==0){ //문자열 비교 함수 strcmp로 검색후 이름 일치시 메모리 삭제
free(pphone[i]);
for(;i(num-1); i++){
pphone[i] = pphone[i+1];
}
num--;
puts(------- 데이터를 삭제했습니다 \n);
return 0;
}
}
puts(정보를 찾을수 없습니다.. \n);
return 0;
}
int search()//데이터 검색하기
{
char tmp[20];
int i;
puts([search]);
printf(이름을 입력해주세요: );
scanf(%s, tmp);
for(i=0; inum; i++){
if(strcmp(pphone[i]-name, tmp)==0){ //문자열 비교 함수 strcmp로 검색하고 이름이 일치하는 자료를 출력
printf(이름:%s / 전화번호:%s \n\n, pphone[i]-name, pphone[i]-tel);
return 0;
}
}
puts(정보를 찾을수 없습니다..\n);
return 0;
}
int printall() // 모든 데이터 출력
{
int i;
puts([printall data]);
if(num == 0){
puts(데이터가 없습니다..\n);
return 0;
}
for(i=0; inum; i++){ //구조체 포인터배열에 담겨있는 모든 데이터를 출력
printf(이름: %s / 전화번호 : %s \n,pphone[i]-name,pphone[i]-tel);
}
puts();
return 0;
}
--------------------configuration: phone - win32 debug--------------------
linking...
plus.obj : error lnk2001: unresolved external symbol _printall
debug/phone.exe : fatal error lnk1120: 1 unresolved externals
error executing link.exe.
phone.exe - 2 error(s), 0 warning(s)이거인데;;; 해결부탁드려요
ㅇㅅㅇ;; 제발요 ㅜㅜ
-
돋가이
해결해주셔서감사합니당 꾸벅
-
DevilsTears
함수선언에 printall이라고 되어있네요.
앞글자를 대문자로 바꿔줍시다.