Ошибка ввода / вывода для переменной без знака - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть файл с именем input.in. Мне нужно прочитать число и сохранить его в переменной без знака. Я читаю число и распечатываю содержимое переменной на экране и вижу, что это правда (печатает 1). Тем не менее, оператор if не выполняется. Он печатает False на стандартный вывод. Почему это происходит? Как я могу сохранить это число в переменной без знака?

Файл input.in:

asus@ubuntu:~/Desktop$ cat input.in 
1

Я работаю в Ubuntu. sizeof (без знака) = 1

#include <fstream>
#include <iostream>

using namespace std;

int main(){

    unsigned char ucbuffer;

    fstream in;

    in.open("input.in",ios::binary | ios::in);

    in.read((char*)&ucbuffer,1);

    cout << ucbuffer << endl;
    if (ucbuffer==1) cout << "True" << endl;
    else cout << "False" << endl;

        return 0;
}

1 Ответ

1 голос
/ 01 декабря 2011

if (ucbuffer==1) ложно.Значение равно '1', а не 1.Числовое значение '1' составляет 49.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...