Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу здесь за 20 тыс руб в месяц! alarforum@yandex.ru


Ответ
 
Опции темы
Старый 04.01.2012, 11:39   #1
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 449
По умолчанию Не сходится Т_т

Имеется простенький код:

Код:
#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
	int x;
	Console::WriteLine(L"Please enter a number:");
	x = Console::Read();

	Console::WriteLine(L"You entered: {0}", x);
	
        Console::Read();

	return 0;
}
По нему сразу же пару вопросов:
1.) Почему идет ввод цифры с новой строки? (или тут система отличима от cin?) Как сделать ввод сразу после текста?
2.) Почему некорректно отображается вводимое число? Вводим 1, программа пишет что ввели 49.
3.) Как программу затормазить, т.е. есть ли аналоги getch()\system("pause")
L6go1as вне форума Ответить с цитированием
Старый 04.01.2012, 11:55   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Как сделать ввод сразу после текста?
Код:
Console::Write(L"Please enter a number:");
x = Console::ReadLine();
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 04.01.2012, 12:04   #3
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 449
По умолчанию

Есть одна проблема, когда пишешь так, как было приведено выше уважаемым Mad_Cat, компилятор выдает ошибку:

Цитата:
error C2440: '=' : cannot convert from 'System::String ^' to 'int'
Зато, есть записать Console::Write\Console::Read - все одну линию, за это спасибо методу взнающего тыка!

Что до вывода не правильного значения, то похоже выводит цифровое значение символа, 1 - 49\А - 65\а - 95 ... интересно, почему ? Т_т
L6go1as вне форума Ответить с цитированием
Старый 04.01.2012, 12:12   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
Зато, есть записать Console::Write\Console::Read - все одну линию, за это спасибо методу взнающего тыка!
скорее всего должен быть аналог С#(в с++ 2 день))
Код:
x = Int32::Parse(Console::ReadLine());
тогда все должно быть ровно и с выводом числа и вводом
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 04.01.2012 в 13:08.
Mad_Cat вне форума Ответить с цитированием
Старый 04.01.2012, 12:26   #5
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 449
По умолчанию

Увы, такая конструкция не работает ...
По вводу я имел введу:
Код:
Console::Write(L"Please enter a number: "); 
int x = Console::Read();
Ввод в одну строку.
L6go1as вне форума Ответить с цитированием
Старый 04.01.2012, 12:34   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,002
По умолчанию

вы уверены что хотите лезть в С++ for dotNET?
1)ответили.
2)см пост 4.
3)в конце
Код:
Console::ReadLine()
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.01.2012, 12:45   #7
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 449
По умолчанию

Спасибо, уже разобрался сам.

Код:
int x = Int32::Parse(Console::ReadLine());
Для чего лезу? Хочу получить все процессы запущенные на машине, узнать у каждого PID\Name. Пока что нашел как это сделать только в CLI, как-то в C++ функция промелькала, но чего-то найти сейчас не могу. Так что проще программу дописать, а там уже опять поисками заняться.
L6go1as вне форума Ответить с цитированием
Старый 04.01.2012, 13:12   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,002
По умолчанию

Код:
#include <windows.h>
#include <tlhelp32.h>
#include <vector>
#include <string>
#include <utility>
#include <iostream>

std::vector<std::pair<std::string,DWORD> > GetProcesses()
{
    std::vector<std::pair<std::string,DWORD> > res;
    HANDLE snapHandle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if(snapHandle!= INVALID_HANDLE_VALUE)
    {
        PROCESSENTRY32 data;
        if(Process32First(snapHandle,&data))
        {
            do
            {
                res.push_back(std::make_pair<std::string,DWORD>(data.szExeFile,data.th32ProcessID));
            }
            while(Process32Next(snapHandle,&data));
        }
        CloseHandle(snapHandle);
    }
    return res;
}

int main()
{
    std::vector<std::pair<std::string,DWORD> > pl=GetProcesses();
    for(std::vector<std::pair<std::string,DWORD> >::iterator it=pl.begin();it<pl.end();it++)
        std::cout<<it->second<<":"<<it->first<<std::endl;
    return 0;
}
не?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.01.2012, 13:35   #9
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 449
По умолчанию

Эм, не знаю )
Но мой компиль ошибку
Код:
res.push_back(std::make_pair
тут выдает )
L6go1as вне форума Ответить с цитированием
Старый 04.01.2012, 15:09   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,002
По умолчанию

какой компиль то?
я в gcc собирал и проверял.

и какая ошибка?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
subscript out of range - как найти ошибку Т_Т Bape}l{ka Microsoft Office Excel 16 02.12.2011 18:13
Паскаль: процедура, функция т_т Liam_ Помощь студентам 8 09.01.2011 21:52
Работа с файлами Т_Т Лесная Эльфийка Паскаль, Turbo Pascal, PascalABC.NET 0 26.12.2010 21:57
Не сходится рисунок !) Weyner Помощь студентам 0 26.12.2010 16:22
Не работает Filter. Не знаю, что делать...Т_Т Zerofill БД в Delphi 2 02.06.2009 20:23


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840