我一直在困扰着我的头脑,允许用户在结构体中输入单词。 我使用的struct
低于为结构体中的字符赋值 - c
struct class
{
char class_num[4];
char *class_name;
}
如果任何人都可以点我如何做到这一点,或至少指向我在贵方觉得伟大正确的方向。 谢谢
我一直在困扰着我的头脑,允许用户在结构体中输入单词。 我使用的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 2010-04-21 01:28:43
在C字符只是一种整数,除了它们可以是有符号或无符号的(int是默认签名的)。所以class_num [i]是一个字节的整数。有很多方法可以做输入,它取决于它应该是一个字符串还是一个四字节代码或其他。正如Jon瓦特所说,你还必须为其他领域的内存管理。您可能会查看scanf或strtod或strtol与read或fread结合使用。除非像数据库那样有更复杂的输入。
你排除了用C++编写吗?这看起来像一种IT应用程序。 – Potatoswatter 2010-04-21 01:22:45
@Patatoswatter:当我们不是问题的一部分时,我们能否避免讨论使用哪种语言? – 2010-04-21 03:25:10