我有一个可以容纳 1000 个元素的字符数组('\0' 为 +1)。该数组将由用户输入填充。我想知道是否有任何方法可以检查输入是否超过数组可以容纳的数量。如果我尝试添加它,程序会在我比较它的大小之前崩溃。我正在考虑扩展数组并查看输入是否少于 1000 个字符,但这个想法对我来说似乎并不是一个很好的想法。
编辑:
我std::cin.getline()
用来从用户那里获取输入并且不能使用Sting
该类
我有一个可以容纳 1000 个元素的字符数组('\0' 为 +1)。该数组将由用户输入填充。我想知道是否有任何方法可以检查输入是否超过数组可以容纳的数量。如果我尝试添加它,程序会在我比较它的大小之前崩溃。我正在考虑扩展数组并查看输入是否少于 1000 个字符,但这个想法对我来说似乎并不是一个很好的想法。
编辑:
我std::cin.getline()
用来从用户那里获取输入并且不能使用Sting
该类
简短的回答:是的。
使用std::string
:
std::string line
while (std::getline(std::cin, line))
{
// do something with line
}
如果不允许使用std::string
,那么您可以扮演自己的字符串类,或者查看std::getline
并模仿它们的常见实现(只是不将其存储在 a 中std::string
)。
我认为检查它的一种方法是找到\0
数组中的索引。如果位置等于或大于1000
,则不应向其添加更多字符。
如果您正在使用cin.getline()
,您可以使用变量n
来指定您想要的最大字符数
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );
在这里您可以设置n=1001
(它还计算终止字符\0
)。