1
在固定数组上循环使用getline
的正确方法是什么?如果在读取字符块中未找到分隔符,则以下循环将停止。带分隔符的getline
char data[4];
while (cin.getline(data, 4, '.'))
{
...
}
的样本数据,这将导致循环失败:“什么是正确的方法循环与getline
固定阵列”
asdasdasdasd.asdasdasd
在固定数组上循环使用getline
的正确方法是什么?如果在读取字符块中未找到分隔符,则以下循环将停止。带分隔符的getline
char data[4];
while (cin.getline(data, 4, '.'))
{
...
}
的样本数据,这将导致循环失败:“什么是正确的方法循环与getline
固定阵列”
asdasdasdasd.asdasdasd
char
阵列可能的解决方案:
std::string token;
while (std::getline(std::cin, token, '.')) {
if (token.empty()) {
// TODO
continue; // ?
}
if (token.size() == 4) {
// TODO
}
else {
// TODO
}
}
我不会问这个问题,如果我不想使用C风格的字符数组。 –
@SebastianNowak:然后使用std :: string对象的内容初始化你的char数组,只要确保它足够大。 – LihO
@SebastianNowak这导致了一个明显的问题:*为什么*? –