Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/68: Рейтинг темы: голосов - 68, средняя оценка - 4.97
 Аватар для Michael777
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42

WriteConsole

20.10.2011, 23:04. Показов 12769. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как вывести вместо %d значение переменной val c помощью WriteConsole?

C++
1
2
DWORD val;
WriteConsole(Output, L"ERROR!!! Use: lab1 f1 f2  %d  abc\n", msglen, &count, NULL);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.10.2011, 23:04
Ответы с готовыми решениями:

Сравнение WriteConsole, WriteFile и printf
Здравствуйте, скажите чем принципиально отличаются между собой WriteConsole, WriteFile и printf. Что из них должно работать быстрее? ...

WriteConsole не выводит текст
.386 ;поддержка команд ;процессора 80386 .model flat, stdcall ;плоская модель памяти option...

Почему вывод WriteConsole не перенаправляется?
И как это исправить не используя библиотеку C? Пишу #include <windows.h> int main() { DWORD c; c = (DWORD)'!'; ...

2
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.10.2011, 14:28
Цитата Сообщение от Michael777 Посмотреть сообщение
Как вывести вместо %d значение переменной val c помощью WriteConsole?
Michael777, функция WriteConsole не способна такое делать, она выводит только строки, для целочисленных значений нужно конвертировать в текст далее выводить вот пример.
C++
1
2
3
4
5
HANDLE hout  = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD  dw, val = 32000u;
WCHAR  snum[16];
wsprintfW(snum, L"%d", val);
WriteConsoleW(hout, snum, lstrlenW(snum), &dw, NULL);
3
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
05.09.2013, 20:15
Так все работает:
C++
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
#include <windows.h>
#include <stdio.h>
 
  
 
int main() 
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(866);
  HANDLE  hConsoleOutput;    // для дескриптора буфера экрана
 
  //хэндл экрана новый
  HANDLE hStdOutNew; 
  
                                          //+  
                                          //+  
                                          //+  
                                          //+  
   
  //создадим буфер экрана (новый) 
  hStdOutNew = CreateConsoleScreenBuffer( 
    GENERIC_READ | GENERIC_WRITE, 
    FILE_SHARE_READ | FILE_SHARE_WRITE,
    NULL,                         // защита по умолчанию 
    CONSOLE_TEXTMODE_BUFFER,      // текстовый режим 
    NULL);                        //не используется 
 
  
  //Проверим, правильно ли создали
  if (hStdOutNew == INVALID_HANDLE_VALUE) 
  {
    printf ("всё плохо\n"); 
    return 0; 
  }
 
  printf ("%d\n", SetStdHandle (STD_OUTPUT_HANDLE ,hStdOutNew));
  getchar ();
 
  
  //Если правильно создали делаем активным новый буфер экрана 
  if (!SetConsoleActiveScreenBuffer(hStdOutNew)) 
  { 
    printf ("всё плохо %d\n",GetLastError()); 
    return 0; 
  } 
  
  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  
  system ("dir");
  wchar_t buff[100];
  swprintf(buff,L"\r\nэтой надписи мы никогда не увидим, равно как и вывода dir\n");
 //Теперь чтобы записать что-то в новый буфер экрана, надо использовать, 
  //например WRiteConsole, где первым параметром идёт буфер экрана
  
  WriteConsoleW(hStdOutNew,buff,wcslen(buff),NULL,NULL); 
    
  
  getchar ();
  
  return 0; 
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Том в устройстве C не имеет метки.
 Серийный номер тома: 1C43-1414
 
 Содержимое папки c:\Users\dmitry94_1\Documents\Visual Studio 2008\Projects\test
15\test15
 
06.09.2013  00:05    <DIR>          .
06.09.2013  00:05    <DIR>          ..
06.09.2013  00:05    <DIR>          Debug
06.09.2013  00:05             1*634 main.cpp
05.09.2013  23:34             3*952 test15.vcproj
06.09.2013  00:05             1*411 test15.vcproj.home.dmitry94_1.user
               3 файлов          6*997 байт
               3 папок  757*956*947*968 байт свободно
 
этой надписи мы никогда не увидим, равно как и вывода dir
Добавлено через 8 минут
Извиняюсь, промахнулся малость. Можно удалить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2013, 20:15
Помогаю со студенческими работами здесь

Как запустить программу , в которой используется WriteConsole?
Вот есть код: title Lab 5.1 Обчислення Yn = 5,1х2 + 5,3 .686 ; директива визначення типу...

Сформировать строку и вывести результат в консоль (wsprintf и WriteConsole)
Добрый день. Помогите пожалуйста написать программу, которая выпишет результат в виде 10-чного числ на консоли при помощи wsprintfA. Вот,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru