ていうかgetlineで良くね?
  while(std::cin.getline(buf, sizeof(buf), ',')) { 
    std::cout << buf << std::endl; 
  }