0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 9
|
||||||
1 | ||||||
Не удается использовать функцию gets в программе, где создается поток24.07.2012, 22:04. Показов 987. Ответов 8
Метки нет (Все метки)
Приветствую всех.
Я в меру своих возможностей изучаю С++ по книге Г. Шилдта. Время от времени пытаюсь самостоятельно писать небольшие программки - чтобы проверить свои знания, в связи с чем регулярно сталкиваюсь с непонятными трудностями. Надеюсь, вы мне поможете с текущей. Сейчас пытаюсь написать простенькую программу, которая бы создавала текстовый массив со строкой, а затем записывала бы ее в файл. Однако я столкнулся с неприятной проблемой. Функция gets (или gets_s) перестает работать при использовании в программе, где создается поток. Можете подсказать с чем это может быть связано и какие-нибудь другие функции для считывания строк текста с клавиатуры? Вот полный текст программы:
0
|
24.07.2012, 22:04 | |
Ответы с готовыми решениями:
8
Ошибка в программе, где создается шаблон класса "стек" Использовать процедуру-функцию в программе Разработать функцию и использовать её в главной программе Использовать в одной программе процедуру и функцию |
Модератор
13706 / 10909 / 6473
Регистрация: 18.12.2011
Сообщений: 29,125
|
|
24.07.2012, 22:16 | 2 |
Вместо gets_s(str)
Надо использовать cin.getline(str,79); Нехорошо смешивать методы потокового ввода-вывода и функции стандартного ввода-вывода.
0
|
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 9
|
|
24.07.2012, 22:32 [ТС] | 3 |
Попробовал заменить. Все равно не получается. Пропускает считывание фразы и сразу уходит к концу файла.
0
|
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
|
|
24.07.2012, 22:38 | 4 |
После cin >> fname; поставьте cin.get(); Там символ новой строки остается во входном потоке после cin >> fname; И его нужно удалить
0
|
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
|
||||||
24.07.2012, 22:43 | 5 | |||||
так попробуй, добавь cin.get()
Не по теме: неуспел
0
|
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 9
|
|
24.07.2012, 22:45 [ТС] | 6 |
Спасибо, после этого заработало. Блин, как неочевидно. Можете подсказать какую-нибудь статью, где бы расписывались подобные тонкости поведения потоков, чтобы я мог изучить ее на будущее?
0
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
24.07.2012, 22:49 | 7 |
Здесь почитайте для начала. basic_istream::getline Там и другие ссылки есть.
0
|
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
|
|
24.07.2012, 22:50 | 8 |
Могу посоветовать Стивен Прата Язык программирования C++. Лекции и упражнения Глава 4. Смешивание строкового и числового ввода.
2
|
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 9
|
|
24.07.2012, 23:08 [ТС] | 9 |
Спасибо, ознакомлюсь.
0
|
24.07.2012, 23:08 | |
24.07.2012, 23:08 | |
Помогаю со студенческими работами здесь
9
Не создается поток Не создается поток ifstream? OpenMP создается один поток С нажатием кнопки создается поток Создается ли новый поток на каждую форму? AsyncCallback: создается ли новый поток на каждое принятое сообщение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |