사용자가 구조체에 단어를 입력 할 수있게하는 데 어려움을 겪고 있습니다. 사람이 어떻게 이렇게하는 날 지점 또는 적어도 좋을 wuld 올바른 방향으로 날 지점 수 있다면 내가 사용하고 struct
는구조체의 문자에 값 지정 - c
struct class
{
char class_num[4];
char *class_name;
}
이하입니다. 감사합니다.
사용자가 구조체에 단어를 입력 할 수있게하는 데 어려움을 겪고 있습니다. 사람이 어떻게 이렇게하는 날 지점 또는 적어도 좋을 wuld 올바른 방향으로 날 지점 수 있다면 내가 사용하고 struct
는구조체의 문자에 값 지정 - c
struct class
{
char class_num[4];
char *class_name;
}
이하입니다. 감사합니다.
"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을"회원에 해당 문자열 (사본)를 저장합니다.
구조체가 학교 데이터베이스 용이므로 class_num은 학교 클래스의 코드입니다. – user321853
C에서 char는 부호가 있거나 부호가없는 경우를 제외하고는 정수 유형입니다 (기본적으로 int가 서명 됨). 따라서 class_num [i]는 1 바이트 정수입니다. 입력을하는 방법은 여러 가지가 있으며 문자열인지 4 바이트 코드인지에 따라 다릅니다. Jon 와트가 말했듯이 다른 분야의 메모리도 관리해야합니다. scanf 또는 strtod 또는 strtol을 read 또는 fread와 결합하여 찾을 수 있습니다. 데이터베이스와 같은보다 정교한 입력이 없다면 말입니다.
C++로 쓰기를 배제 했습니까? IT 종류의 응용 프로그램처럼 보입니다. – Potatoswatter
@Potatoswatter : 질문의 일부가 아닌데 사용할 언어에 대한 토론을 피할 수 있습니까? –