0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 42
1

WriteConsole

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

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

C++
1
2
DWORD val;
WriteConsole(Output, L"ERROR!!! Use: lab1 f1 f2  %d  abc\n", msglen, &count, NULL);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2011, 23:04
Ответы с готовыми решениями:

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

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

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

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

2
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.10.2011, 14:28 2
Цитата Сообщение от 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 3
Так все работает:
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; 
}
Код
Том в устройстве 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
05.09.2013, 20:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2013, 20:15
Помогаю со студенческими работами здесь

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru