在C中使用glib函数获得交互式输入
|
我正在编写一个c库,但是在我要测试功能之前。因此,我执行以下操作:
int main(void)
{
GString *msg = NULL;
msg = g_string_sized_new(256);
printf (\"Insert a string (255 characters at most): \");
do_fgets((char *) msg->str, (size_t) msg->len, stdin);
printf(\"msg->allocated_len = %u \\n\", (size_t) msg->allocated_len);
printf(\"msg->len = %u \\n\", (size_t) msg->len);
return 0;
}
编译正常,但是程序将输出以下内容:
msg-> allocated_len = 512
msg-> len = 0
为什么这个?还有其他方法可以使用glib函数从用户那里获得交互式输入吗?
如果有人可以帮助我,我将不胜感激!
没有找到相关结果
已邀请:
3 个回复
渴翅吮斡撤
的函数,无论如何... 您的代码失败,因为它试图读取0个字节(
的初始值)。另外,
从不更新(按值传递给to1ѭ)。
娠频摩
所以它打印出来:
唯一奇怪的是为什么为什么allocated_len是512,而不是256。 感谢大家的答复...
厘恼轨
它可以很好地打印出所有内容... 谢谢大家的意见!