Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126

Фальшивый минус

04.09.2010, 17:56. Показов 1422. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попробовал скомпилировать исходник к книге Р.Лафоре "Объектно-ориентированное программирование в C++". Ошибок в исходниках к этой книге очень много. Компилятор выдал error: stray '\226' in program. Ошибку нашел не сразу т.к. строка с ошибкой выглядит вполне корректно. Оказалось, проблема в знаке "минус". Минус выглядит вполне нормально, но минусом в действительности не является. Я заменил минус и программа скомпилировалась нормально. На скриншоте стоят рядом два минуса; справа настояший, слева фальшивый. Редактор кода подсвечивает их разными цветами.
Миниатюры
Фальшивый минус  
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.09.2010, 17:56
Ответы с готовыми решениями:

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

atof и "фальшивый ноль"
Нужно получая аргументы в виде строки (char*) распознать цифры, atof для этого подходит хорошо, но есть один минус - как же мне узнать...

Минус ноль
Товарищи, ничего не соображаю. Элементарная программа выводит корни квадратного уравнения. #include <iostream> #include...

5
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
04.09.2010, 18:01
Гм. А откуда ты брал "исходники к этой книге"?
0
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
04.09.2010, 18:28  [ТС]
Цитата Сообщение от CheshireCat Посмотреть сообщение
Гм. А откуда ты брал "исходники к этой книге"?
На сайте piter.com
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.09.2010, 19:07
RNT, символы имеют другой код, это довольно распространенная практика. Поэтому или пишите программу для обработки кода, скопированного с сайта(автозамена символов) или вручную исправляйте ошибки.
Я решил проблему с автозаменой написав программку, показываю чтобы пояснить принцип
Java
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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Main {
 
    private static byte replace(byte value) {
        switch (value) {
            case -96:
                return 32;
            case -78:
                return 73;
            case -77:
                return 105;
            case -64:
                return 65;
            case -62:
                return 66;
            case -59:
                return 69;
            case -52:
                 return 77;
            case -51:
                return 72;
            case -50:
                return 79;
            case -48:
                return 80;
            case -47:
                return 67;
            case -46:
                return 84;
            case -32:
                return 97;
            case -27:
                return 101;
            case -18:
                return 111;
            case -16:
                return 112;
            case -15:
                return 99;
            case -13:
                return 121;
            case -11:
                return 120;
        }
        return value;
    }
 
    public static void main(String[] args) {
        String code = "";
        int i;
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Input code:");
        try {
            code = in.readLine().replaceAll("%0A", "\n").replaceAll("%3D", "=")
                                       .replaceAll("%2B", "+").replaceAll("%25", "%");
        } catch (IOException e) {
        }
        byte[] arr = code.toString().getBytes();
        for (i = 0; i < arr.length; ++i) {
            if (arr[i] < 0) {
                arr[i] = replace(arr[i]);
                if (arr[i] < 0)
                    System.out.println(code.charAt(i) + "\t" + arr[i]);
            }
        }
        System.out.println("\nResult code:");
        code = new String(arr);
        System.out.println(code);
    }
}
ЗЫ. цифры будут отличаться
1
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
04.09.2010, 19:27  [ТС]
Ошибки в исходниках очень разнообразные. Ошибка с минусом встретилась впервые за 340 страниц. Легче вручную исправить.
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
05.09.2010, 11:55
Ну, раз это все с сайта издательства, то рискну предположить, что они просто тупо вырезали методом Copy&Paste исходники из сверстанного набора книги и выложили их. Но!!! Имей в виду, что сверстанный текст легко может отличаться от исходного! Это объясняется именно тем, что он должен легко восприниматься в напечатанном виде. В том числе, нередко в тексте верстальщиками заменяются и знак "минус", и "тире", и другие символы - на знаки, которые лучше выглядят зрительно, будучи напечатанными.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2010, 11:55
Помогаю со студенческими работами здесь

Унарный минус на С#
Всем доброго времени суток,помогите пожалуйста с задачкой. (i-мнимая единица) Условие: а=3+4i c=-a a=-3-4i Заранее спасибо:)

Степень минус единицы
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; #include &lt;conio.h&gt; using namespace std; double...

представление чисел со знаком минус
Допустим у нас есть такое число в десятичной системе счисления: -134. В шестнадцатеричной системе счисления число 134 равно 086. А как это...

Как убрать знак минус
У меня int a = -7. Как программно получить a = 7?

Оператор (-) Унарный минус. классы.
Доброе время суток . помогите . составить operator- (унарный минус) ( что бы координаты x и y были отрицательными .( немогу понять как...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru