Строки c++

программирование программы С++

st1[j-4]=st[j];
в st[j] '5', а в st1[j-4] получаю '5<<<ю' типа такого мусора, при чем через раз, в чем может быть трабл?
PS j>=4

Примечание:
string st,st1;
ifstream in("input.txt");
ofstream out("output.txt");
long n,j,i;
base *first,*last,*p;
first=new base;
first->next=NULL;
last=first;
char c;
in>>n;
getline(in,st);
for (i=0;i<n;i++)
{
getline(in,st);
if (st[0]=='A')
{
long a,b;
j=4;
while (st[j]<='9' && st[j]>='0')
{st1[j-4]=st[j];j++;}
long z=j;
a=atol(st1.c_str());
while (st[j]!='\0') {st1[j-z]=st[j];j++;}
b=atol(st1.c_str());
last->a=a;
last->b=b;
p=last;
last=new base;
last->next=NULL;
p->next=last;
p=first;
long count=0;
while (p!=last) {if (p->a==a && p->b==b) count++; p=p->next;}
out<<count<<endl;
st1="";
}

Примечание:
Нет, строка st в полном порядке, st1 кривая
Ответы:
попробуйте убрать getline(in,st); после in>>n; - возможно считывается лишняя строка
//попробуй обнулять ее: st1[0] = '\0';


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.