2010-04-21 4 views
0

사용자가 구조체에 단어를 입력 할 수있게하는 데 어려움을 겪고 있습니다. 사람이 어떻게 이렇게하는 날 지점 또는 적어도 좋을 wuld 올바른 방향으로 날 지점 수 있다면 내가 사용하고 struct구조체의 문자에 값 지정 - c

struct class 
{ 
    char class_num[4]; 
    char *class_name; 
} 

이하입니다. 감사합니다.

+0

C++로 쓰기를 배제 했습니까? IT 종류의 응용 프로그램처럼 보입니다. – Potatoswatter

+0

@Potatoswatter : 질문의 일부가 아닌데 사용할 언어에 대한 토론을 피할 수 있습니까? –

답변

1

"class_num"은 무엇이되어야합니까?

일반적으로 문자열 메모리를 명시 적으로 관리해야합니다. 함수 strdup()가 도움이 될 수 있습니다. 고려 :

struct class cls; 
char buf[256] = {0}; 
puts("Name?"); 
fgets(buf, 255, stdin); 
cls.class_name = strdup(buf); 
//you need to free "cls.class_name" after its use is over 

이것은 사용자가 255 자까지 문자열을 입력하게되며, 구조체 인스턴스 "CLS"의 "class_name을"회원에 해당 문자열 (사본)를 저장합니다.

+0

구조체가 학교 데이터베이스 용이므로 class_num은 학교 클래스의 코드입니다. – user321853

0

C에서 char는 부호가 있거나 부호가없는 경우를 제외하고는 정수 유형입니다 (기본적으로 int가 서명 됨). 따라서 class_num [i]는 1 바이트 정수입니다. 입력을하는 방법은 여러 가지가 있으며 문자열인지 4 바이트 코드인지에 따라 다릅니다. Jon 와트가 말했듯이 다른 분야의 메모리도 관리해야합니다. scanf 또는 strtod 또는 strtol을 read 또는 fread와 결합하여 찾을 수 있습니다. 데이터베이스와 같은보다 정교한 입력이 없다면 말입니다.