我正在尝试制作一个程序,其中用户必须输入不同大小的 char[] 数组。 我可以使用 string.h stdlib.h iostream 库。 如何检查用户输入是否大于 Max size-1(为 /0 保存位置),而不先询问大小并避免溢出崩溃。 谢谢你
我尝试查找不同的东西,但它们对于听起来不太复杂的东西来说似乎相当复杂,意识到我不能使用字符串,因为它位于字符串库中
可以逐个读取字符并统计读取的字符数。
#include <iostream>
void read_string(char* dst, size_t dst_size) {
if (dst_size == 0) return;
size_t size_read = 0;
while (size_read + 1 < dst_size) {
char c;
if (!(std::cin >> c) || c == '\n') break;
dst[size_read++] = c;
}
dst[size_read] = '\0';
}
int main(void) {
char buf[16];
read_string(buf, sizeof(buf));
std::cout << buf << '\n';
return 0;
}