@limaximy

Как сравнить char в с++ на пустоту?

У меня есть программа, которая с serial порта берет инфу
Инфа поступает по 8 символов, хз как поменять, не суть
Забираю я эту инфу через функцию, которая возвращает char
Обычно, первые 5 символов это цифры, а оставшиеся - пустые символы char
Но при сравнении с пустотой типа if (c != ' ') или if (c != '\0') никакого эффекта нет, т.е. каждый символ из последовательности 8 символов никогда не равен пустоте. Как еще может быть представлена пустота:)), чтобы с ней можно было сравнить и мне было понятно, когда информация в последовательности заканчивается.
Код особо не имеет смысла, т.к. чтобы его запустить нужны еще и микросхемы, подключенные к пк. Но вот отрывок, где я сравниваю. Может я опять сплю и что то банальное не вижу.
while (true) {
		char c = com.ReadChar(successFlag); // read a char
		if (successFlag) 
		{
			if (c != ' ' ){
				ss = ss + c;
				printf(" this is suka simvol?? %c \n", c);
			}
			else
			{
				if (ss != ""){
				std::cout << ss;
				ss = "";
				}
				else
				{
				std::cout << std::endl;
				}	
			}					
		}
	}

и вот скриншот с выходом, вот последние символы не понятны. И при копировании в блокнот или куда угодно ничего вместо этих символов не ставится.
66ac993ee5b6c340041867.png
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Тебе надо читать документацию по этой библиотеке (com ?):

char c = com.ReadChar(successFlag); // read a char

и узнать что конкретно она возвращает в виде пустоты.

Она может возвращать знаковое отрицательное число (int) -1 в качестве признака например.

А для char - никакой пустоты не бывает. Обычно char - это 8 или 16 бит беззнаковое целое число (завист
от компиллятора).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы