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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
#1

Чем сумма char'ов отличается от их разности? - C++

09.04.2011, 19:14. Просмотров 913. Ответов 3
Метки нет (Все метки)

Задание было написать программу, решающую линейное уравнение в духе 1+x=3.(условие)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <fstream>
using namespace std;
main(){
    ifstream infile("input.txt");
    ofstream outfile("output.txt");
    char a,b,c,d;
    infile.get(a);
    infile.get(d);
    infile.get(b);
    infile.get();
    infile.get(c);
    if (a=='x')
        if (d=='+') outfile << c-b; else outfile << b+c-96;
    if (b=='x')
        if (d=='+') outfile << c-a; else outfile << a-c;
    if (c=='x')
        if (d=='+') outfile << a+b-96; else outfile << a-b;
    infile.close();
    outfile.close();
    return 0;
    }
Программа работает... Но, как видно из кода, при сумме к числам прибавляется 96, при разности этого не происходит. Собственно, заинтересовался, почему так происходит.
Мои догадки-"+"и"-" это, насколько я понимаю, перегруженные функции... Видимо, перегружены они по разному?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2011, 19:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чем сумма char'ов отличается от их разности? (C++):

Чем отличается if от (?:) - C++
Здравствуйте. Почитываю С++, сам программирую в Делфи. Вот немного запутался. В делфи есть условный оператор if, тогда как в С++ есть такой...

Чем отличается this от *this? - C++
Привет всем ! вот код template&lt;typename Key, typename Value&gt; Dictionary&lt;Key, Value&gt;&amp; Dictionary&lt;Key, Value&gt;::operator =(const...

Чем new отличается от malloc? - C++
Чем new отличается от malloc?

Чем C++ отличается от C++ Builder? - C++
Чем C++ отличается от C++ Builder? И если имеется желание писать именно в C++, а не в билдере, то что для этого ещё надо освоить и каким...

Чем отличается С++ от Visual С++? - C++
Здравствуете товарищи программисты! Только начал изучать язык программирования С++ и возникло пару вопросов. Чем отличается С++ от Visual...

Чем отличается ln , lg, и log ? - C++
и как реализуются эти функцию в c++

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
09.04.2011, 19:14 #2
не поверите, но char это int, просто от -127 до 128(если char типа signed, unsigned char будет от 0 до 255)...
Узнать, какой int соответствует символу можно например так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    char a = '0', b = '9';
    std::cout << (int)a << " " << (int)b; //48 57
    std::cout << std::endl << a-b; //-9 = 0 - 9 = 48 - 57
    std::cout << std::endl << a+b; //105 = 9 + 96
    return 0;
}
как видно, с разностью чисел проблем нет, но с суммой будут, поэтому вы и вычитаете 96
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.04.2011, 20:08  [ТС] #3

Не по теме:

Забавная штука...

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
ostream& tab(ostream& output){
    return output << "\t";
}
main(){
int i;
for (i = 0; i <=255; i++)
    cout << i << tab << (unsigned char)i << endl;
    cin.get();
    return 0;
}
О существовании некоторых символов я даже и не подозревал...
♫ ☺☻ ♀ ♂ ♥ ♦ ♣ ♠
Сравнил результат с табличкой ASCII... Забавно=)


Получается, чтобы перевести char в int, нужно еще и вычесть из него 48...
Но это как-то некрасиво выглядит, наверняка в столь великом и могучем языке есть другие способы перевода цифры char'овской в цифру int'овскую. Хотелось бы узнать, какие?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.04.2011, 20:14 #4
http://msdn.microsoft.com/en-us/libr...(v=vs.71).aspx
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2011, 20:14
Привет! Вот еще темы с ответами:

Чем отличается vector<> от set<> а? - C++
Привет всем, у меня токой вопрос, Чем отличается vector&lt;&gt; от set&lt;&gt; а? обое же контеинеры? Примеров кучо, просто разницу не...

Чем отличается компилятор от интерпретатора? - C++
чем отличается компилятор от интерпретатора?

Чем отличается fopen от ifstream? - C++
сабж...

Чем отличается оператор цикла - C++
Помогите ответить на вопрос по контрольной: Чем отличается оператор цикла с предусловием от оператора цикла с постусловием?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.04.2011, 20:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru