Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
#1

Ввод строк - C++

29.09.2010, 13:28. Просмотров 1931. Ответов 9
Метки нет (Все метки)

Доброго дня.
Проблема такая: при вводе нескольких строк программа вылетает
C++
1
2
3
4
5
6
7
8
9
#include<iostream>
using namespace std;
int main()
{
 char s;
 char s2[100];
 cin >> s;
 сin.get(s,100); //Вот тут начинается перескакивание строк.
}
Пробывал вариант:
C++
1
cin.get(s2,100,'#')
Но не удобно с завершающим символом....
Может кто подскажет как это обойти?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2010, 13:28     Ввод строк
Посмотрите здесь:

Ввод нескольких строк или массив строк - C++
У меня есть массив строк. Нужно ввести несколько строк, но не получается. Вот код: int main() { const int n=4; const int...

Ввод строк - C++
Функция не дает ввести строки и завершается сразу после её вызова. Как исправить? void Sum() { char str1; char str2; cout &lt;&lt;...

Ввод и обработка строк. - C++
Доброго всем времени суток, собственно как и многие, начал проходить с++. Задачки которые есть простенькие, но одна вещь вводит меня в...

Ввод и вывод строк - C++
Вылетает программа после того, как вводишь строку. Подскажите, пожалуйста, в чем ошибка? Вот код: #include&lt;stdio.h&gt; ...

Ввод строк с файла - C++
Нужно с файла ввести строки в массив символов char. Как это правильно реализовать, чтобы потом можно было посимвольно перебирать элементы...

Ввод строк целиком - C++
Написал программу, в которой сортируются структуры данных. Т.е. пользователь вводит кол-во книг и информацию о книгах. Поля имеют...

Ввод массива строк - C++
Есть такой код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;string.h&gt; #include &lt;Windows.h&gt; using namespace std; int main ()...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 13:37     Ввод строк #2
char s - это 1 символ - как Вы собираетесь записать сюда строку?
попрубуйте так
C++
1
cin.getline(s2,100);
Добавлено через 2 минуты
и еще у вас в строке
C++
1
сin.get(s,100); //Вот тут начинается перескакивание строк.
cin - первая буква русская
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
29.09.2010, 13:40  [ТС]     Ввод строк #3
Цитата Сообщение от obuhanoe Посмотреть сообщение
и еще у вас в строке
C++
1
сin.get(s,100); //Вот тут начинается перескакивание строк.
cin - первая буква русская
Писал сразу в браузере. не в среде
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 13:42     Ввод строк #4
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream>
 
using namespace std;
int main()
{
 char s;
 char s2[100];
 cin.get(s).get();
 cin.getline(s2,100); //Вот тут начинается перескакивание строк.
}
вводит сначала 1 символ
потом строка хоть из 1 слова хоть из 10 до 99 символов в общем
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
29.09.2010, 13:49  [ТС]     Ввод строк #5
Цитата Сообщение от obuhanoe Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream>
 
using namespace std;
int main()
{
 char s;
 char s2[100];
 cin.get(s).get();
 cin.getline(s2,100); //Вот тут начинается перескакивание строк.
}
вводит сначала 1 символ
потом строка хоть из 1 слова хоть из 10 до 99 символов в общем
Все хорошо, только если записать вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
 
using namespace std;
int main()
{
 char s;
 char s2[100];
 cin.get(s).get();
 cin.getline(s2,100); //Вот тут начинается перескакивание строк.
 cin.get(s).get();// или cin >> s;
}
То новое значение s не получает....
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 13:54     Ввод строк #6
если я введу с клав.
R
true false
O

программа у меня выведет при условии cout << s << " " << s2;

O true false
ведь так вы хотитие или я чего то не понимаю?
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
29.09.2010, 13:58  [ТС]     Ввод строк #7
Вот грубо приведен отрывок кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
publication *publ[100]; //класс publ имеет поле типа char[100]
    int i=0;
    char s;
    do
    {
        cout << "Новая публикация книга или запись (b|t): ";
        cin.get(s).get();
        cout << endl << s << endl;
        if(s=='b')publ[i]=new book; //наследник publ
        else if(s=='t')publ[i]=new tape; //наследник publ
        else cout << "Не верный типа публикации\n";
        if((s=='b')||(s=='t'))
        {
            publ[i]->input(); // виртуальный метод
            i++;
        }
        cout << "Продолжить (y/n)? :";
        cin.get(s).get();
    }
    while(s!='n');
При вводе 1-го элемента - все нормально
При вводе последующих - не считывает значение s

PS Если нужно, то скину всю прогу
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
29.09.2010, 14:04     Ввод строк #8
Попробуй после cin'ов вызывать cin.sync();
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 14:05     Ввод строк #9
LineStown - как ни странно у меня все работает
Code::Blocks 10.05
GNU GCC 4.5.1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2010, 14:35     Ввод строк
Еще ссылки по теме:

Соединение 2-х строк, ввод их с клавиатуры - C++
Всем привет. Нужно написать программу, пожалуйста помогите. Условие значит такое(написал в виде алгоритма): 1.) Вводим с клавиатуры...

Последовательный ввод двух строк - C++
мне нужно ввести две строки одна за другой,но у меня сразу предлагается ввод двух строк string name,for_number; vector&lt;int&gt; number;...

Ввод - вывод строк + пробелы - C++
Ввести строку. Вывести в виде нескольких строк так, чтобы в каждой строке было по 4 слова, первое слово начиналось в 5-ой позиции, а...

Ввод строк и чисел вместе - C++
возникла потребность ввода строк и чисел вместе. есть массив чисел и массив строк. нужно реализовать их совместный ввод: ввожу имя и...

Ввод длинных строк с пробелами - C++
Доброго времени суток!!! Собственно как организовать ввод строки вида &quot;один два три 4 5 6 7...&quot; - где вперемешку будут и символы, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
29.09.2010, 14:35  [ТС]     Ввод строк #10
Спасибо всем за помощь
cin.getline(name,100); и cin.sync(); творят чудеса :0
Yandex
Объявления
29.09.2010, 14:35     Ввод строк
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru