我一直无法绕过允许用户在结构中输入单词。
我正在使用的struct
位于
struct class
{
char class_num[4];
char *class_name;
}
如果有人能指出我如何做到这一点,或者至少指出我正确的方向,那将是伟大的。 感谢
答案 0 :(得分: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”成员中。
答案 1 :(得分:0)
在C chars中只是一种整数,除了它们可以是有符号或无符号的(默认情况下是int)。所以class_num [i]是一个字节的整数。有许多方法可以进行输入,这取决于它是应该是字符串还是四字节代码或其他什么。正如Jon Watt所说,你还必须为另一个领域管理记忆。您可能会查找scanf或strtod或strtol与read或fread结合使用。除非你有像数据库那样更复杂的输入。