Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140

При работе с программой выдает не результат, а какие то непонятные символы

08.11.2014, 19:09. Показов 1773. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот скриншот:



Собственно что это и как убрать ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2014, 19:09
Ответы с готовыми решениями:

Почему при попытки считывания выдаёт какие-то непонятные символы, а не те, которые требовались?
#include <cstdio> #include <iostream> using std::cout; using std::cin; using std::endl; int main () { double...

Строки (добавляет какие-то непонятные символы)
Есть функция, которая возвращает строку. char *create_string(int Q1, int Q2, int Q3, int S1, int S2, int S3, float T) { int Q; int...

При попытке открыть код интернет-страницы выдает непонятные символы вместо русских букв
При попытке открыть код интернет-страницы выдает непонятные символы вместо русских букв. Как можно от этого уйти? procedure...

10
56 / 50 / 22
Регистрация: 17.03.2014
Сообщений: 143
08.11.2014, 19:15
Исходник в студию!
0
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
08.11.2014, 19:22  [ТС]
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
71
72
73
#include <iostream>
#include <stdlib.h>
using namespace std;
class Zayavka {
char *nomeravtobysa, *FIO, *nomermarshryta, *park;
public:
Zayavka() {
nomeravtobysa = "73";
FIO = "Yakov4ykDima";
nomermarshryta = "198";
park = "da";
}
Zayavka(char *nomeravtobysa1, char *FIO1, char *nomermarshryta1, char *park1) {
nomeravtobysa = nomeravtobysa1;
FIO = FIO1;
nomermarshryta = nomermarshryta1;
park = park1;
}
void GetInfo(char *a0, char *a1, char *a2, char *a3) {
nomeravtobysa = a0;
FIO = a1;
nomermarshryta = a2;
park = a3;
}
void writeDat() {
cout << nomeravtobysa << " " << FIO << " " << nomermarshryta << " " << park <<endl;
}
void SrchnShow(char *a3, char *num)
 {
    char number;
    number=*num;
        if (a3=="da")
            cout<< "Avtobys #   " <<number<<"  v parke"<<endl;
        else cout<<"Error"<<endl;
}
};
void main() {
int a;
int n=1;
char *t1;
char *num;
a=1;
Zayavka *lib = new Zayavka[n];
while (a!=0) {
cout << "Rabota so spiskom:"<<endl;
cout << "1. Vivesti v vide spiska.\n";
cout << "2. Dobavit avtobys. \n";
cout << "3. Vivod avtobysov kotorie v parke:  \n";
cout << "0. Vixod. \n";
cin >> a;
if (a == 1) {
for (int i = 1; i< n; i++)
lib[i].writeDat();
}
if (a == 2) {
cout << "Vvedite dannie: nomer_avtobysa, FIO, nomer_marshryta, V parke(Y/N)? ):" << endl;
char  *a0 = new char[20], *a1 = new char[20], *a2 = new char[20], *a3 = new char[20];
cin >> a0 >> a1 >> a2 >> a3;
lib[n++].GetInfo(a0,a1,a2,a3);
num=a1;
delete  a1;
delete  a2;
delete  a3;
}
if (a == 3) {
t1="da";
for (int i = 1; i< n; i++)
{
lib[i].SrchnShow(t1,num);
}
}
}
}
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
08.11.2014, 19:34
Цитата Сообщение от Revolver19931 Посмотреть сообщение
Вот скриншот:
Ну так при вызове 'SrchnShow'

C++
1
2
3
4
for (int i = 1; i< n; i++)
{
  lib[i].SrchnShow(t1,num);
}
в него передается некий загадочный указатель 'num', который в этот момент содержит вообще непонятно что. Вот первый символ этого "непонятно чего" вы и печатаете на экране.

Единственное место в программе, где указателю 'num' назначается хоть какой-то значение, это

C++
1
2
3
4
...
num=a1;
delete  a1;
...
причем, как видите, память тут же освобождается и 'num' остается указывать "в никуда".

Другими словами, что вы написали - то и получилось. Это у вас надо спрашивать: что это за 'num', почему он всегда содержит мусор и зачем вы этот мусор пытаетесь печатать?
0
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
08.11.2014, 20:24  [ТС]
Мне нужно в переменную num занести переменную a0(я перепутал a0 и a1), потом вывести ее если выполняется некое условие, но оно мне выводит какое то непонятное значение..., помогите разобраться!

Добавлено через 23 минуты
Как правильно произвести сравнение какой то переменной со словом ?

Мой код

C++
1
2
3
4
5
6
7
8
void SrchnShow(char *a3, char *num)
 {
    char number;
    number=*num;
        if (a3=="da")
            cout<< "Avtobys #   " <<number<<"  v parke"<<endl;
        else cout<<"Error"<<endl;
}
Не работает, он выводит все подряд
0
56 / 50 / 22
Регистрация: 17.03.2014
Сообщений: 143
08.11.2014, 20:29
Насколько я смог разобраться в Вашем коде, пришел к следующему выводу: Вам нужно думать не о том, какие аргументы отправить в функцию void SrchnShow(). По факту аргументы ей вообще не нужны. У Вас есть класс с полями данных, в которых, содержатся значения номера автобуса, маршрута и проч. В нем же определены несколько конструкторов и метод get для установления значений этих полей данных.
C++
1
2
3
4
5
6
7
8
9
class Zayavka {
char *nomeravtobysa, *FIO, *nomermarshryta, *park;
public:
Zayavka() {
nomeravtobysa = "73";
FIO = "Yakov4ykDima";
nomermarshryta = "198";
park = "da";
}
А вот функция void SrchnShow() принимает в качестве аргументов какие-то сторонние переменные из тела программы. Получается, что выводится информация не о членах класса, а о каком-то стороннем мусоре:
C++
1
2
3
4
5
6
7
8
void SrchnShow(char *a3, char *num)
 {
    char number;
    number=*num;
        if (a3=="da")
            cout<< "Avtobys #   " <<number<<"  v parke"<<endl;
        else cout<<"Error"<<endl;
}
0
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
08.11.2014, 20:42  [ТС]
Если я делаю так:

C++
1
2
3
4
5
6
7
void SrchnShow()
 {
    
        if (park == "da")
            cout<< "Avtobys #   " <<nomeravtobysa<<" naxoditsa   v parke"<<endl;
        else cout<<"Error"<<endl; 
}
Мне сразу выводит Эрор, т.е. она не прогоняет проверку.

Как поправить код, что бы проходило сравнение переменной со словом "da" и выводило другую переменную когда они равны ?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.11.2014, 20:48
Revolver19931, сравнивать строки в стиле C через strcmp
И так делать не надо:
Цитата Сообщение от Revolver19931 Посмотреть сообщение
C++
1
2
3
4
nomeravtobysa = "73";
FIO = "Yakov4ykDima";
nomermarshryta = "198";
park = "da";
Цитата Сообщение от Revolver19931 Посмотреть сообщение
C++
1
2
3
4
nomeravtobysa = nomeravtobysa1;
FIO = FIO1;
nomermarshryta = nomermarshryta1;
park = park1;
чтобы скопировать в одну строку другую используй strcpy, предварительно выделив память.
Или рас уж тема в разделе С++ используй std::string
0
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
08.11.2014, 21:31  [ТС]
Ребят, помогите! Мне нужно вывести автобусы которые находятся в парке через функцию void SrchnShow .

В ней я провожу сравнения :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void SrchnShow()
{
 
 int result;
 char str1[]="da";
 result = strcmp( str1, park );
 if (result < 0)
 {
            cout<< "Avtobys # " <<nomeravtobysa<<" naxoditsa   v parke"<<endl;
            {
                if (result == 0) cout<< "Net avtobysov v parke!"<<endl;
                else cout<<"Error"<<endl;
            }
 }
}
однако у меня ничего не получается, мне ничего не выводит при вызове ф-и, что не так?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.11.2014, 21:48
Цитата Сообщение от Revolver19931 Посмотреть сообщение
что не так?
C++
1
2
3
4
5
6
7
8
9
if (result < 0)
{
    cout<< "Avtobys # " <<nomeravtobysa<<" naxoditsa * v parke"<<endl;
    {
        // result никогда не будет 0, т.к. сюда попадет только когда result < 0
        if (result == 0) cout<< "Net avtobysov v parke!"<<endl;
        else cout<<"Error"<<endl;
}
}
0
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
08.11.2014, 22:46  [ТС]
Тогда нужно сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void SrchnShow()
 {
    int result;
    char str1[]="da";
    result = strcmp( str1, park );
        if(result == 0 )
            cout<<"error"<<endl; 
        
        if (result < 0)
            cout<< "Avtobys#   "<<nomeravtobysa<<"   V PARKE "<<endl;
         
}
Но выводит все ровно без сравнения переменной result , выводит все подряд...у меня больше идей нет

Добавлено через 47 минут
Помогите пожалуйста !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2014, 22:46
Помогаю со студенческими работами здесь

какие то непонятные символы
Hitachi HDT725032VLA360 ATA Device при загрузке выдаёт непонятные символы.Как с этим бороться?Потому что через другой винт(ST3120811as ATA...

Вывод массива выдает непонятные символы
Здраствуйте ,проблемы с выводом массива . До этого пользователь ввел в массив MASS числа. SUM-это некоторое сообщение, в даном случае...

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

Почему при копировании из Matcad 15 в Word вместо русских букв получаются какие-то "каракули" - непонятные символы вместо букв
Я пользуюсь Matcad 15. Почему при копировании набранного текста из рабочей области Matcad 15 в документ Word вместо русских букв получаются...

При вычислении выдает непонятные значения
При вычислении выдает непонятные значения.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru