为什么这两个函数 istream::get(char*,streamsize) 和 istream::get(char*,streamsize,char) 在找到 '\n' 作为 cin 缓冲区中的第一个字符时设置 cin.fail 位?
从这里可以看出,这就是上面提到的两个重载的行为。我想知道以这种方式设计这些功能的目的是什么?请注意,这两个函数都将字符 '\n' 留在缓冲区中,但如果您再次调用它们中的任何一个,它们将因换行符而失败,如链接所示。像函数 istream::get() 和 istream::getline() 的重载那样,让这两个函数不将字符 '\n' 留在缓冲区中不是更有意义吗?