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

косяк вызова функции через switch case - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ DOS -> WIN http://www.cyberforum.ru/cpp-beginners/thread410613.html
Помогите написать программу для перекодировки текста к примеру из DOS -> WIN!
C++ Вычислить сумму отрицательных, произведение положительных и количество нулевых элементов массива с нечетными индексами. Народ выручайте :D у меня заходы уже. задачка с одномерным массивом. Вычислить сумму отрицательных, произведение положительных и количество нулевых элементов массива с нечетными индексами. вот код // 3333333.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <stdio.h> http://www.cyberforum.ru/cpp-beginners/thread410612.html
Дан текст, определить, сколько в нем предложений. Вывести на экран самое длинное. C++
Помогите написать программу на языке С:) пожааалуйста)
C++ сумма медиан
найти сумму медиан треугольника заданый координатами вершин медиана в виде функции координат и задана ими как написать код даже не представляю??????????? c++ 3.1
C++ массив http://www.cyberforum.ru/cpp-beginners/thread410592.html
из масива D создать новый массив расположив вначале отрицательные, затем положительные. Определить в каком из массивов наименьший по модулю элемент встретится первым.вывести все массивы, наименьшие значения и их индексы..... с++ help plzzz
C++ матрица и замена столбцов найдите ошибку # include <iostream.h> # include <conio.h> # include <stdio.h> # include <stdlib.h> # include <math.h> void main () { float A, B; int i,j,x,y,a,b; clrscr(); подробнее

Показать сообщение отдельно
htonasral
5 / 5 / 1
Регистрация: 19.05.2009
Сообщений: 23
18.12.2011, 17:20     косяк вызова функции через switch case
Ошибка достаточно примитивная(я это даже ошибкой не считаю, просто не досмотрел).
Вообщем так:
C++
1
2
3
4
5
6
7
BOOL TextOut(
  HDC hdc,           // дескриптор DC
  int nXStart,       // x-координата начальной позиции
  int nYStart,       // y-координата начальной позиции
  LPCTSTR lpString,  // строка символов
  int cbString       // число символов
);
это функция вывода твоих циферок
параметр cbString устанавливает длину строки. Для функции ANSI, это количество BYTE (байтов).
Твоя функция:
C++
1
case 1: TextOut(hdc, xstpos+(x)*size + 15, ystpos+(y)*size + 15, "1",2);break;
C++
1
case 11: TextOut(hdc, xstpos+(x)*size + 15, ystpos+(y)*size + 15, "11",2);break;
То есть символ "1" это на самом деле 2 байта(+ завершающий символ '\0'), здесь все хорошо, ты и передаешь 2 байта.
Но символ "11" это уже 3 байта.
Просто нужно для чисел с 10 до 15 поменять параметр cbString на 3 и все будет работать.
 
Текущее время: 01:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru