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

Непонятный выход за пределы подстроки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Правая треугольная Матрица!!!!Умножение матриц!!! http://www.cyberforum.ru/cpp-beginners/thread37357.html
Ввести размерность матрицы N даны 2 правые треугольные матрицы А и В,размерности N, вида: 1 2 3 4 5 5 6 7 8 7 8 9 8 9 1 Найти матрицу С, тоже правую треугольную. Вот мой код, проблема в том, что вместо вводимых чисел пользователем выводится числа из памяти:ПОМОГИТЕ ПОЖАЛУЙСТА!!!
C++ Проверка на количество элементов матрицы Как сделать проверку на количество элементов матрицы в файле, то есть, например, если размерность матрицы 3х3, а количество элементов всего 5. Оставшиеся элементы будут нули. А как так сделать, чтобы вместо нулей программа вылетела??? http://www.cyberforum.ru/cpp-beginners/thread37332.html
C++ Классы С++
Какой год наступит по прошествии заданного количества дней после начала указанного года? Например через 366 дней после начала 2000 года наступит 2001; через 365 дней после начала 2000 года наступит год 2000 (будет тот же год). Имя класса: СYearFinder Исходное данное: int Имя метода для установки исходного данного: SetYear Имена полей, в которых хранятся исходные данные: m_year...
C++ Дан файл f, компоненты которого являются целыми числами
Дан файл f, компоненты которого являются целыми числами. Получить в файле g все компоненты файла f, являющимися четными числами. Я пробовал решить данную задачу, для начала : юзер вводит число, оно записывается в файл f и оттуда копируется в файл g. Мой код: #include "stdafx.h" #include <stdio.h> #include <stdlib.h>
C++ Удаление строки из файла\либо удаление самого файла. http://www.cyberforum.ru/cpp-beginners/thread37325.html
День добрый, вот функция(используемые переменные объявленны ранее): void delete_cruise() { FILE *fout; open_file("abase.dat"); char *result; char line, find_str; fin=fopen("abase.dat","rt"); if(fin==NULL) cout<<"ЋиЁЎЄ*! “Є*§***л© д*©« *Ґ **©¤Ґ*."<<"\n";//Сообщение об ошибке, если файл не найден
C++ Выборка из массива У меня есть программка, которая выполняет,при длине L четной, то удаляются 2 первых и 2 последних символа; #include<iostream.h> #include<string.h> #include<stdlib.h> #include<stdio.h> #include<conio.h> #define SIZE 255 class x { char *str; подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921

Непонятный выход за пределы подстроки - C++

30.05.2009, 20:10. Просмотров 1037. Ответов 14
Метки (Все метки)

Делаю функцию,заполняющую map.Пока это только прототип для одного элемента,потом задам цикл,или вообще придётся переписать с использованием потоков(стоит это делать?).Выдаёт ошибку на этапе выполнения-весьма неприятно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void map_filler(map<string,float>&m)
{
    string str,float_substr,name_substr;
    getline(cin,str);
 
    name_substr=str.substr(str[0],str.find_first_of(' '));//qw 4.567 - this input causes throwing an instance of std::out_of_range
    float_substr=str.substr(str.find_first_of(' ')+1,str.size()-str.find_first_of(' ')-1);
 
    for (unsigned int i=0;i<float_substr.size()+1;++i) cin.putback(float_substr[float_substr.size()-i]);
    float num;
    cin>>num;
    cout<<num<<' '<<float_substr<<' '<<name_substr;
    m[name_substr]=num;
}
name_substr=str.substr(str[0],str.find_first_of(' '));//qw 4.567 - this input causes throwing an instance of std::out_of_range -вот эта строка выдаёт ошибку выхода за пределы подстроки.Просто не понимаю,как это может быть?Я уже методом "тыка" всё перепробовал,всё не то.Ведь str.find_first_of(' ') возвращает число int,номер позиции элемента,всё должно работать!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru