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

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

08.11.2014, 19:09. Показов 1729. Ответов 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
12935 / 6802 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru