gpt4 book ai didi

c - 如何在C中取一行字符串

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:03 28 4
gpt4 key购买 nike

我想在 C 中取一行字符串,怎么办?如果我在 printf 中使用格式说明符 %s,它只会将字符带到第一个空格。如何摆脱它?除了使用getline还有其他方法吗?提前致谢。

最佳答案

scanf 不是从输入流中获取行的糟糕选择。虽然你可以很容易地做到这一点:

buf[SIZE];
scanf ("%[^\n]\n", buf);

您将面临遭受缓冲区溢出错误/攻击的风险。

更好的方法是使用 fgets 一次读取“SIZE”字符,并将数据复制到一个动态分配的缓冲区中,您可以在填充缓冲区时调整大小:

buf[SIZE];
do {
fgets (buf, SIZE, stdin);
/* Handle copying to dynamic buffer and resize over here */
} while (/*check we haven't reached eol*/);

关于c - 如何在C中取一行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215440/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com