간이 메모리 데이터베이스 (5) CREATE
column 이 여러 개 있 기 때문에 순환 문 구 를 써 야 합 니 다 while (...)
순환 문장의 끝 조건 은 무엇 입 니까? 언제 까지 column 을 읽 으 면 다 읽 는 것 입 니까?
당연히 파일 이 끝나 거나 ')' 까지 읽 어야 지.
그래서 저희 가 처음에 이렇게 쓸 수 있어 요.
fscanf(fp,"%s",buffer);
while (!feof(fp) && strcmp(buffer,")")) {
while 순환 에서 column 을 읽 을 때마다 column 대상 을 만 듭 니 다.채 워 주세요.
그리고 column 구 조 를 디자인 할 때 저 는 링크 구 조 를 사용 합 니 다.그래서 만 들 때마다 column 대상 을 연결 해 야 합 니 다.
// column
Column * current = NULL;
fscanf(fp,"%s",buffer);
while (!feof(fp) && strcmp(buffer,")"))
{
// column
Column * column = (Column *)malloc(sizeof(Column));
// column
memset(column, 0, sizeof(Column));
// column , 1) 2) 3)
if (t.columns == NULL) t.columns = column;
if (current!=NULL) current->next = column;
current = current->next;
링크 구조의 생 성 은 반드시 기억 해 야 합 니 다!1) 체인 헤드 유지 2) 체인 시 계 를 연결한다 3) 현재 포인터 하나 뒤로 이동
됐어.지금까지 CREATE 의 가장 복잡 한 부분 이 실 현 된 이후이제 우 리 는 홀가분 해 졌 다.내용 을 하나씩 읽 고 새로 만 든 column 에 저장 하면 됩 니 다.
t.columnCount++;
// column name
strcpy(column->name, buffer);
// column type(column length)
fscanf(fp,"%s",buffer);
getColumnTypeLength(buffer, &column->type, &column->length)==0;
// NULL; ;
fscanf(fp,"%s",buffer);
if (strcmp(buffer,";")==0 || strcmp(strupr(buffer),"null;")==0)
column->allowNull = 1;
// NOT,
else if (stricmp(buffer,"not")==0)
{
// null;
fscanf(fp,"%s",buffer);
if (stricmp(buffer,"null;")) return 0;
column->allowNull = 0;
}
이렇게 column 하나 면 다 된 거 야.계속 아래로 읽 고 순환 을 완성 하 세 요.
//
fscanf(fp,"%s",buffer);
}
return 1;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SAE에서 알리페이의 "발송 확인"인터페이스를 지원하여 "protocol error"를 완벽하게 해결이틀 동안 SAE 기반 프로젝트가 알리페이의 담보 거래 결제 인터페이스에 사용되었다.결제 인터페이스는 SAE 디버깅이 모두 정상적이지만 발송 확인을 사용할 때 "ERROR: 501 - protocol error"라는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.