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

Ошибка в коде (Ошибка сегментирования (core dumped) - C++

Восстановить пароль Регистрация
 
w0lfheart
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
12.07.2015, 12:50     Ошибка в коде (Ошибка сегментирования (core dumped) #1
Добрый день.

Подскажите пожалуйста, где ошибка в коде?

C++
1
2
3
4
5
6
7
8
9
    char ch;
    string s;
 
    while ((ch = cin.get()) != '0' )
    {
        string::iterator i = s.begin();
        if(!isspace(ch)) ++i;
        s.insert(s.begin(),ch);
    }
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2015, 12:50     Ошибка в коде (Ошибка сегментирования (core dumped)
Посмотрите здесь:

Ошибка сегментирования (core dumped) C++
C++ C++ Ошибка сегментирования
C++ Ошибка сегментирования.
ошибка сегментирования C++
C++ Ошибка сегментирования
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
12.07.2015, 15:36     Ошибка в коде (Ошибка сегментирования (core dumped) #2
C++
1
2
3
4
5
6
7
8
9
    char ch;
    string s;
 
    while ((ch = cin.get()) != '\n' )
    {
        string::iterator i = s.begin();
        //if(!isspace(ch)) ++i;
        s.insert(s.begin(),ch);
    }
w0lfheart
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
12.07.2015, 20:33  [ТС]     Ошибка в коде (Ошибка сегментирования (core dumped) #3
Переписал код, сама программа должна выводить введенные числа через пробел в обратном порядке, на конце строки ввода 0, который выводить не нужно.

Выводит все ошибку.
Подскажите пожалуйста, как можно переместить вставку при инсерте в строку?
Без смещения работает, со смещением выдает ошибку сегментирования.
По примерам использования вроде все правильно...

C++
1
2
3
4
5
6
7
8
9
10
    char ch;
    string s;
    int i=0;
    while ((ch = cin.get()) != '0' )
    {
        if(!isspace(ch))i++;
        s.insert(s.begin()+i,ch);
    }
    s.erase(s.begin());
    cout << s << endl;
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
12.07.2015, 22:27     Ошибка в коде (Ошибка сегментирования (core dumped) #4
Цитата Сообщение от w0lfheart Посмотреть сообщение
сама программа должна выводить введенные числа через пробел в обратном порядке, на конце строки ввода 0, который выводить не нужно.
Пример ввода, и что должно получиться.
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
12.07.2015, 22:31     Ошибка в коде (Ошибка сегментирования (core dumped) #5
Так, что ли?
C++
1
2
3
4
5
6
7
8
9
10
11
12
char ch;
    string s;
    
    while ((ch = cin.get()) != '0' )
    {
        s.insert(s.begin(), ch);
        s.insert(s.begin(), ' ');
    }
    
    cout << s << endl;
    
    system("pause");
Миниатюры
Ошибка в коде (Ошибка сегментирования (core dumped)  
w0lfheart
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
12.07.2015, 22:36  [ТС]     Ошибка в коде (Ошибка сегментирования (core dumped) #6
Пример ввода и вывода:
Sample Input:
1 2 3 4 0
Sample Output:
4 3 2 1

Простой вывод делал, возникает не правильный вывод при вводе чисел: 100, 10 или любых чисел больше 9..
Для этого ввел сдвиг, а с ним теперь выдает ошибку..
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
13.07.2015, 00:17     Ошибка в коде (Ошибка сегментирования (core dumped) #7
Так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   string ins;
    string s;
    
    while ((cin >> ins))
    {
        if (ins != "0")
        {
            s.insert(s.begin(), ins.begin(), ins.end());
            s.insert(s.begin(), ' ');
        }
        else
            break;
            
    }
    
    cout << s << endl;
Миниатюры
Ошибка в коде (Ошибка сегментирования (core dumped)  
w0lfheart
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
13.07.2015, 10:08  [ТС]     Ошибка в коде (Ошибка сегментирования (core dumped) #8
Огромное спасибо.
Разобрался.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2015, 20:42     Ошибка в коде (Ошибка сегментирования (core dumped)
Еще ссылки по теме:

Ошибка сегментирования C++
Ошибка сегментирования C++
C++ Segmentation fault (core dumped)

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

Или воспользуйтесь поиском по форуму:
w0lfheart
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
14.07.2015, 20:42  [ТС]     Ошибка в коде (Ошибка сегментирования (core dumped) #9
Не долго радовался, вылезла новая проблема с недопонимаем..
Помогите плз, понять почему в функции не выполняется вторая часть (else)?
Функция соединяет два char*. и заканчивает строку нулем.

Заранее большое спасибо.


C++
1
2
3
4
5
6
7
void strcat(char *to, const char *from) {
    for (int k=0;to[k];k++)
    {
    if(*to != '\0')to++;
    else {*to = (*from?*from:'\0'); to++; from++;}
    }
}
Yandex
Объявления
14.07.2015, 20:42     Ошибка в коде (Ошибка сегментирования (core dumped)
Ответ Создать тему
Опции темы

Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru