我有以下代码将文件中的字节管道输入到我的C ++应用程序中:
char *buffer = new char[SIZE];
while (!std::cin.eof()) {
std::cin.read(buffer, SIZE);
for(int i=0; i<SIZE; i++){
std::cout << buffer[i] << std::endl;
}
}
然而,问题是我只输出/读取管道的第一个SIZE字节。如何读取管道大小大于SIZE的管道中的所有字节?
答案 0 :(得分:2)
gcount()。 正确的方法:
while (!std::cin.eof()) {
std::cin.read(buffer, SIZE);
for(int i=0; i<cin.gcount(); i++){
std::cout << buffer[i] << std::endl;
}
}