The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Нажатие клавиши. С#. Нужен пример"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email on 04-Май-15, 13:28 
Нужен такой пример в учебных целях.
Консольная программа ожидает ввода, нажимается клавиша, навпример, стрелка вверх,
Выводит сообщение. Программа опять ждет.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Pahanivo (ok) on 04-Май-15, 16:49 
> Нужен такой пример в учебных целях.
> Консольная программа ожидает ввода, нажимается клавиша, навпример, стрелка вверх,
> Выводит сообщение. Программа опять ждет.

хм странные у студентов нонче подходы )))

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email on 04-Май-15, 18:42 
>> Нужен такой пример в учебных целях.
>> Консольная программа ожидает ввода, нажимается клавиша, навпример, стрелка вверх,
>> Выводит сообщение. Программа опять ждет.
> хм странные у студентов нонче подходы )))

Ну я не студент, конечно... кодер-любитель :)

Но вопрос пока снят, сделал через scanf.
Вообще почти все сделал, вот только не пойму, как в си избавиться от exit status by default и вернуться в начало программы.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email on 04-Май-15, 19:08 
>>> Нужен такой пример в учебных целях.
>>> Консольная программа ожидает ввода, нажимается клавиша, навпример, стрелка вверх,
>>> Выводит сообщение. Программа опять ждет.
>> хм странные у студентов нонче подходы )))
> Ну я не студент, конечно... кодер-любитель :)
> Но вопрос пока снят, сделал через scanf.
> Вообще почти все сделал, вот только не пойму, как в си избавиться
> от exit status by default и вернуться в начало программы.

Все, понял.
Видимо, в читстом С# просто так нажатия стрелок не отловить, нужно подключать ncurses.
С зацикливанием тоже разобрался.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Аноним (??) on 04-Май-15, 21:54 
На вот, гугель дал:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("msvcrt")]
        static extern int _getch();

        static void Main(string[] args)
        {
            Console.WriteLine("Hello world");
            Console.WriteLine("Press any key to end..");
            _getch();
        }
    }
}

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email on 04-Май-15, 22:33 
>[оверквотинг удален]
>         {
>            
> Console.WriteLine("Hello world");
>            
> Console.WriteLine("Press any key to end..");
>            
> _getch();
>         }
>     }
> }

Спасибо, конечно. Но DLL  - это что-то не то. Хотел всего лишь такое сделать, листалку.
Делается с ncurses, как я уже и сказал!

Источники:
http://www.gnu.org/software/guile-ncurses/manual/html_node/G...
https://code-live.ru/post/terminal-mode-management-ncurses/
А таже учебник Керниган и Риччи

#include <stdio.h>
#include <ncurses.h>
int main () {
  
initscr();
keypad(stdscr, true);

int n;  

   noecho();
   printw(" Hello! Press arrows! Or F2 to exit ");
  
int incr (n) {
  
  FILE *file;
    struct symb {
        char name[20];
        
    };
    
    
    struct symb shop[255];char *ff = "bd/";

char *end = ".txt";
char fille[100];
sprintf(fille, "%s%d%s", ff, n, end);
    
      char i=0;


    
    if ((file = fopen(fille, "r"))==NULL) {
      printw("Can't open file \n");
         return (0);
    }
    else {

    while (fscanf (file, "%s", shop[i].name) != EOF) {
        printw("%s ", shop[i].name);
        i++;
        
        }
close(file);
              
    }
            
}

    while ( true ) {  
    
    int ch = getch();

      if (ch ==KEY_LEFT) {
  n++;
  incr (n);
  
}
    if (ch ==KEY_RIGHT) {
  --n;
      if (n < 0) {
    n = 1;
  }
    incr (n);  

      
    }
        
    if (ch ==KEY_F(2)) {
      break;
      
    
    }
      
    }
    
    getch();
    endwin();
    return 0;
    exit(0);
  
}

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email on 04-Май-15, 22:35 
>[оверквотинг удален]
>  }
>     if (ch ==KEY_F(2)) {
>       break;
>  }
>     }
>     getch();
>     endwin();
>     return 0;
>     exit(0);
> }

НО без ncurses даже кошернее и код проще... Подумаешь - энтер еще нажимать =)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Pahanivo (ok) on 05-Май-15, 07:22 
С# ????


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Raven email(??) on 05-Май-15, 08:22 
> С# ????

Если с ncurses это си ++ ?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Аноним (??) on 06-Май-15, 04:29 
>> С# ????
> Если с ncurses это си ++ ?

Не обязательно. Но сверху не C#.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email(ok) on 06-Май-15, 08:28 
>>> С# ????
>> Если с ncurses это си ++ ?
> Не обязательно. Но сверху не C#.

Хорошо, что это?

Т.е. компилятор gcc настолько компиляторный компилятор, что может скомпилировать любую куйню, которая визуально издалека нампоминает код С#?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Pahanivo (ok) on 06-Май-15, 10:31 
> Т.е. компилятор gcc настолько компиляторный компилятор, что может скомпилировать любую
> куйню, которая визуально издалека нампоминает код С#?

Если ты считаешь что С# это коротко записанное название С++ - ты ошибаешься ))

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email(ok) on 06-Май-15, 11:39 
>> Т.е. компилятор gcc настолько компиляторный компилятор, что может скомпилировать любую
>> куйню, которая визуально издалека нампоминает код С#?
> Если ты считаешь что С# это коротко записанное название С++ - ты
> ошибаешься ))

Я понимаю, что это два разных языка, но вроде как C++ рассматривается как надстройка над C
Т.е. как бы более высокий уровень абстракции, как это принято говорить...
Или опять я не прав.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email(ok) on 06-Май-15, 11:44 
>> Т.е. компилятор gcc настолько компиляторный компилятор, что может скомпилировать любую
>> куйню, которая визуально издалека нампоминает код С#?
> Если ты считаешь что С# это коротко записанное название С++ - ты
> ошибаешься ))

Ну хотя , конечно, в чистом си     while ( true ) {  
вообще такого нет, только после объявления ncurses.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

17. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Аноним (??) on 06-Май-15, 22:31 
> Ну хотя , конечно, в чистом си     while ( true ) {
> вообще такого нет, только после объявления ncurses.

пляяяя ... придушите его кто нибудь чтоб уже не мучался :)

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

9. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Аноним (??) on 06-Май-15, 04:27 
> Делается с ncurses, как я уже и сказал!

деточко, то что ты подобрал - _не_C# :)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

15. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Black_Ru email(ok) on 06-Май-15, 11:56 
Выбрасываю из код все лишнее. Все еще не С#?

#include <stdio.h>

main () {


int n;  
  
int incr (n) {
  
FILE *fp;  

    
    char *ff = "bd/";

char *end = ".txt";
char fille[100];
sprintf(fille, "%s%d%s", ff, n, end);
    
      char i=0;

int c;    

    if ((fp=fopen(fille, "r"))==NULL) {
      printf("Can't open file \n");
    exit(0);
    }
    else {

while ((c = getc(fp))!=EOF) {
putc(c, stdout);

      }
            
    }
  
  close(fp);
  printf("\n");
  
}
        
        
int button;

while (button != 1) {

printf (" Press 0 to go next page, 9 to previous, 1 to exit \n\n");
scanf("%d", &button);

if (button == 0) {
  
  n++;
  incr (n);
  printf ("\n");
  
  }
  
  if (button == 9) {
     n--;
     if (n < 0) {
n = 0;
  }

  incr (n);
  printf ("\n");
  
  }
  
   if (button ==1) {
    printf (" Exit! ");
    exit(0);
    
    }
    
    }
}

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

16. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Аноним (??) on 06-Май-15, 22:30 
> Выбрасываю из код все лишнее. Все еще не С#?

Нет :)
А ты реально тупишь или это такой стиль троллинга?

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

18. "Нажатие клавиши. С#. Нужен пример"  +/
Сообщение от Alex_S (??) on 07-Май-15, 08:35 
> Выбрасываю из код все лишнее. Все еще не С#?

вот все, кроме этого - си шарп

а это - грязный си

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру