Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 04:12   #1
bestnicer
Пользователь
 
Аватар для bestnicer
 
Регистрация: 29.05.2012
Сообщений: 59
Восклицание считывание амперсанда С++

Нужно сделать считывание амперсанда без замены его в цикле. С использованием gets и sscanf.
Код:
#include "StdAfx.h"
#include <windows.h>
#include <iostream>
#include <iomanip>
#include <TCHAR.h>
#include <time.h>
#include <conio.h>
 
int _tmain( int argc, TCHAR *argv[] )
{
 
   STARTUPINFO si;
   PROCESS_INFORMATION pi;
   ZeroMemory( &si, sizeof(si) );
   si.cb = sizeof(si);
   ZeroMemory( &pi, sizeof(pi) );
   char szBuf[256];
   wchar_t szWBuf[256];
   int Count =1;
 
   while (strcmp(szBuf, "exit") != 0)
   {
      Count=1;
      scanf ("%s", szBuf);
      for (int i= 0; i<sizeof(szBuf); i++)
      {
         if (szBuf[i]=='&')
            {
                Count=0;
                szBuf[i]=' ';
            }
        }
        mbstowcs(szWBuf, szBuf, 256);
        // Запустим дочерний процесс.
 
        if( !CreateProcess(
        NULL, // Нет имени модуля (используется командная строка).
        szWBuf, // Командная строка. 
        NULL, // Дескриптор процесса не наследуемый.
        NULL, // Дескриптор потока не наследуемый.
        FALSE, // Установим наследование дескриптора в FALSE.
        0, // Флажков создания нет.
        NULL, // Используйте блок конфигурации родителя.
        NULL, // Используйте стартовый каталог родителя.
        &si, // Указатель на структуру STARTUPINFO.
        &pi ) // Указатель на структуру PROCESS_INFORMATION.)
        {
           printf( "CreateProcess failed (%d).\n", GetLastError() );
           return 0;
        }
 
        // Ждать до тех пор, пока дочерний процесс не выйдет из работы.
        if (Count==1)
        {
             WaitForSingleObject( pi.hProcess, INFINITE );
        }
 
         // Закроем дескрипторы процесса и потока.
         CloseHandle( pi.hProcess );
         CloseHandle( pi.hThread );
   }
}
TCHAR.h

Последний раз редактировалось bestnicer; 26.02.2013 в 08:33.
bestnicer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Считывание амперсанда bestnicer Помощь студентам 3 24.02.2013 15:54
Считывание пикселей meri911 Помощь студентам 0 09.11.2012 15:18
Замена амперсанда html-последовательностью &amp; TrydORgolik PHP 2 12.03.2012 11:33
считывание из файла ronny137 Помощь студентам 0 28.04.2011 02:03
Считывание Lisёноk Помощь студентам 5 08.11.2010 15:18