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

Ошибка String subscript out of range - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конструктор копий. Оператор присваивания http://www.cyberforum.ru/cpp-beginners/thread646603.html
В классе есть массив char (не динамический) размером 40 байт. Вопрос1: нужно ли для такого класса определять конструктор копий или перегружать оператор присваивания или вполне подойдёт конструктор копий и оператор присваивания по умолчанию??? Вопрос2:Если в объект вышеописанного класса присвоить другому объекту того же класса, то верно ли, что при этом адрес массива в обоих объектах будет...
C++ Error C2065: 'SetRegistryKey' : undeclared identifier void CContDlg::OnButton3() { CMySwitch dlg; dlg.DoModal(); int nResponse = dlg.DoModal(); if (nResponse == IDOK) { SetRegistryKey(("Cont")); http://www.cyberforum.ru/cpp-beginners/thread646560.html
Описать методы шаблонного класса C++
#include<iostream> #include<time.h> using namespace std; template <typename T> struct Elem { T *mass; int razmer; Elem * next, * prev;
C++ Метод золотого сечения
Нужно найти точку минимума унимодальной функцыи f(x) на отрезке с точностью эпсилон методом золотого сечения и модифицырованым методом Фибоначчи. f(x)=x^2+2*((x*lgx/e)-2) a=1,5 b=2 E=0,01
C++ Конструктор с переменным числом параметров http://www.cyberforum.ru/cpp-beginners/thread646532.html
Привет Всем! интересует вопрос возможно ли описать Конструктор с переменным числом параметров? То есть возможен ли следующий код: class C{ int m_a; C(int a, ...) :m_a(a){ // тут обработка полученных параметров из (...) } }; Если можно с примером ;)
C++ Определить время пребывания i-го покупателя в очереди 2 У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-того покупателя равно ti (i = 1; ...:; n). Определить время Ci пребывания i-го покупателя в очереди. помогите плз подробнее

Показать сообщение отдельно
Sadisst
Сообщений: n/a

Ошибка String subscript out of range - C++

04.09.2012, 14:58. Просмотров 1846. Ответов 2
Метки (Все метки)

Здравствуйте. Написал на Dev C++ 4.9.9.2 программу которая открывает фаил и кладет все в буфер.
Содержание файла: gehen v test*kommen v test*sagen v test
Дальше функцией sort() берет символ и сравнивает весь буфер . Первый пробел (конец первого слова )и до звездочки (конец строки) все это он делит в два вектора для слов и вектор для строк которые кончаются -*.
Всё как бы работает ,но пробовал на Microsoft Visual Studio 2010 там тоже все создается только пишет - String subscript out of range.После чего все завершается. Создает какое-то исключение или ошибка выход за память, так и не разобрался .Может кто-нибудь скажет в какую сторону мне копать или совет ?
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
 
vector <string> uff;        
vector <string> half_uff;   
string buffer;              
string buf;
int n;
 
void loading ()
{ 
     char file[]="C:\\deu.lang";
     ifstream in( file );
     in.seekg(0, ios::end);                            
     buffer.resize( in.tellg() );                           
     n = buffer.length();                           
     in.seekg(0, ios::beg);                             
     in.read ( (char*)buffer.data(), buffer.size() );   
     in.close();
}   
 
void g (int s)
{
    for (int p =0; p<s;p++)
    {
        buf[p]='\0';    //Обнуляем весь буфер
    }
}
 
void sort ()
{
     int s = 0; 
     int wuff =0;
     for ( int i = 0; i < n; i++, ++s )
     {
         //if ( buffer[i] == '\n' ){ break; }//проверка на конец всего буфера   
            
         if ( buffer[i] ==' ' && wuff==0 )  { half_uff.push_back(buf.data()); wuff = 1; }    
 
         if ( buffer[i] !='*' ) { buf[s] = buffer[i];}  
         else { uff.push_back(buf.data()); wuff =0; 
          
           g( s);  s=-1; } 
     }//-end for
     }
 
void fun ()
{
     std::string s;
     int v = half_uff.size (); 
        for(int i = 0; i < v; i++)
        {
            s =  half_uff[i]; 
            cout<<s<<endl;
        }
}
    
int main(int argc, char *argv[])
{
loading (); 
sort ();
fun ();
 
system("PAUSE");
    return EXIT_SUCCESS;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru