Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 02.08.2017
Сообщений: 5
1

Вводится пустая строка

23.05.2018, 18:01. Показов 4026. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, при выполнении моего кода выходит исключение от функции substr (out_of_range). Добавил в программу cout << s.size(), оказалось, что программа и вовсе строку не считывает, т.к. выводит размер строки 0. В чём дело? Подскажите, пожалуйста.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    int N;
    cin >> N;
    for (int i = 0; i < N; i++) {
        string s;
        getline(cin, s);
        int k = s.find('.') + 4;
        cout << s.size();
        string s1 = s.substr(k, 1);
        cout << s1;
    }
    
    cin.get();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2018, 18:01
Ответы с готовыми решениями:

Вводится пустая строка
Пытаюсь сделать ввод для таблицы из массива структурных переменных. Ввожу такие данные: 1 строка...

Вместо favoriteSport вводится пустая строка
Вместо favoriteSport вводится пустая строка. Тут написали как исправить, но нифига не понял(( ...

Пустая строка
Делал задание по перегрузке функций. Перегружаю функцию sum. В одном из заданий надо ее перегрузить...

Пустая строка в функции
Имеется такая функция: int setgolf (golf &amp; g) { std::cout &lt;&lt; &quot;Введите имя гольфиста: &quot;;...

4
7794 / 6560 / 2985
Регистрация: 14.04.2014
Сообщений: 28,681
23.05.2018, 18:07 2
Лучший ответ Сообщение было отмечено almaz179 как решение

Решение

Распространенные ошибки
1
0 / 0 / 0
Регистрация: 02.08.2017
Сообщений: 5
23.05.2018, 18:17  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Помогло, большое спасибо
0
1453 / 828 / 216
Регистрация: 10.02.2018
Сообщений: 3,444
23.05.2018, 18:38 4
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
 int N;  int k;
 string s;
 
 cin >> N;
  for (int i = 0; i < N; i++)
   {
    cin >> s;
    cout << "Lengtn = " << s.size() << endl;
     if(s.find('.') != string::npos)
      {
       k = s.find('.');;
       string s1 = s.substr(k, s.size());
       cout << "K =" << k << endl;
       cout << "S1 = " << s1 << endl;
      }
     else
      {
      }
   }
 system("pause");
 return 0;
}
P.S. Мне только не понятны вот эти строки
C++
1
int k = s.find('.') + 4;
и
C++
1
string s1 = s.substr(k, 1);
в последней Вы питаетесь вывести 1 символ начиная с k позиции, которая больше длины самой строки вот отсюда и ошибка
0
0 / 0 / 0
Регистрация: 02.08.2017
Сообщений: 5
24.05.2018, 09:57  [ТС] 5
Цитата Сообщение от Серж762 Посмотреть сообщение
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
 int N;  int k;
 string s;
 
 cin >> N;
  for (int i = 0; i < N; i++)
   {
    cin >> s;
    cout << "Lengtn = " << s.size() << endl;
     if(s.find('.') != string::npos)
      {
       k = s.find('.');;
       string s1 = s.substr(k, s.size());
       cout << "K =" << k << endl;
       cout << "S1 = " << s1 << endl;
      }
     else
      {
      }
   }
 system("pause");
 return 0;
}
P.S. Мне только не понятны вот эти строки
C++
1
int k = s.find('.') + 4;
и
C++
1
string s1 = s.substr(k, 1);
в последней Вы питаетесь вывести 1 символ начиная с k позиции, которая больше длины самой строки вот отсюда и ошибка
Ошибка была в том, что сначала шёл cin, а потом getline. И в строку s вводился \n, как я понял. Поэтому уже из-за substr выходила ошибка
0
24.05.2018, 09:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2018, 09:57
Помогаю со студенческими работами здесь

Читается пустая строка
Имеется код, при его компилировании программа игнорирует взятие строки у пользователя и заканчивает...

Проверить, пустая ли строка. (fstream)
Добрый вечер, ув. форумчане. Допустим есть пример: void main() { char text; ...

Ввод данных пока строка не пустая
Задача такая: Создать класс билет, который содержит поля:фамилия, номер рейса, и вводить данные...

Проверка, пустая строка или нет
Здравствуйте, подскажите как реализовать проверку на пустую строку?? #include &lt;stdlib.h&gt; #include...

Hot. Как узнать пустая ли строка?
Добрый день. Уже как часа бьюсь с одной проблемой. Есть текст, удаляются определённые символы,...

Переход на строку и пустая строка в файле
Условие. Создайте два выходных файла: в один перепишите из каждой строки первые k слов, в другой -...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru