В документации указано, что cin.get (...) оставит символ окончания (параметр t) в буфере! Мне интересно, как это может быть полезно по сравнению с getline (...), который отменит символ окончания ... BTW, предположим, что у меня есть char buf [256], как я могу очистить этот buf до cout?Почему cin.get (char *, int, char t) и cin.getline (char *, int, char t)?
ответ
Для строк завершающая строка новой строки считается частью строки, и вы обычно хотите удалить ее при чтении строки. Конвенция определила, что полученная строка, содержащая строку , но не, содержит эту новую строчку, однако, поэтому getline отбрасывает ее, а не сохраняет ее. (Другие языки/библиотеки не принимают последнего решения.)
Для вещей, отличных от линий, разделитель не может считаться частью извлекаемого поля, поэтому вы хотите, чтобы он оставался, а затем читался.
Предположим, у меня есть char buf [256], как я могу очистить этот buf до cout?
Если это С-строка (концевую \ 0), то соиЬ < < BUF ;. В противном случае вы можете cout.write его как неформатированную последовательность байтов.
Я опубликовал, но затем удалил очень похожий ответ, потому что я не мог придумать его для использования ... у вас есть пример? –
@larsmans: Подумайте, осуществляете ли вы программу 'tee'. –
Я бы использовал 'tee' как' char' путем копирования 'char', полагаясь на буферизацию iostream или с буферами фиксированного размера ... –
- 1. char + char = int? Зачем?
- 2. cin.getline (char, int) пропускается, когда в цикле
- 3. то, что отличается от char * t = new char и char * t = new char [10];
- 4. Почему char возвращает int
- 5. Сравнение Int и Char "=="
- 6. Добавление char и int
- 7. Проверка на Char/Int
- 8. Evaluate int, char и int
- 9. C++ char array to int и int to char array
- 10. Добавление int как char в char []
- 11. Значение "char * _EXFUN (index, (const char *, int));"
- 12. Преобразование «int» в «char» внутри массива char
- 13. Почему typedef char CHAR
- 14. Преобразование char * в int
- 15. int * vs char * Инициализация
- 16. Java Почему char = char^char отличается от char^= char?
- 17. Передача `int (*) (char const *)` где `int (*) (char *)` ожидается
- 18. Почему (String, Int) ожидается вместо (Char, Int)?
- 19. Подпись Char to Int
- 20. Преобразование int в char
- 21. Char to Int - C++
- 22. Convert char * to int
- 23. Преобразование char в int?
- 24. C++ int to char
- 25. Назначить значение int char
- 26. Кастинг int char *
- 27. Разница между char * и int *
- 28. char и int в Java
- 29. Haskell: Int to Char
- 30. Преобразование char * в int
Пожалуйста, отредактируйте название вопроса: вы уже ответили «какая разница»! –
Пожалуйста, не ставьте второй, не имеющий отношения вопрос в том же сообщении. –