Важная информация
Показано с 1 по 6 из 6

Тема: Перевод строки при использовании scanf() язык Си

  1. #1 Перевод строки при использовании scanf() язык Си 
    Новичок Аватар для TintoPiko
    Регистрация
    04.05.2017
    Сообщений
    3
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях
    Подскажите, как можно при использовании scanf() сделать так, чтобы при нажатии enter не осуществлялся перевод на новую строку. Надо сделать воображаемую таблицу в окне доса, где я в двух столбцах ввожу числа, но таблица не получается из-за перевода строки.
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Компилятор у вас какой?
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. #3  
    Новичок Аватар для TintoPiko
    Регистрация
    04.05.2017
    Сообщений
    3
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях
    Компилятор - mingw5.
    Ответить с цитированием  
     

  4. #4  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Компилятор - mingw5.
    Почему спросил, mingw5 - это под Windows компилятор, у меня его к сожалению нет, но есть DEV-C++.
    Надо сделать воображаемую таблицу в окне доса
    Отсюда следует, что вы пишете под консоль. Ознакомился с описанием этой функции.
    Уж не знаю насколько для вас важны все фишки её форматирования ввода. Но можно просто заменить
    эту функцию ввода на самопальную.
    Таблицу лучше держать в памяти(а не на экране) и выводить её после каждого ввода значения.

    Расскажите как у вас организована работа с массивом динамических строк, тогда посмотрим что
    можно с этим сделать.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  5. Пользователь сказал cпасибо:

    TintoPiko (04.05.2017)

  6. #5  
    Новичок Аватар для TintoPiko
    Регистрация
    04.05.2017
    Сообщений
    3
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях
    Спасибо, за ответ. Рассказать про то, что Вы просите наверное не смогу пока, только учу Си. Я тоже, предположила сначала ввести все необходимые значения, а потом уже их в таблицу вывести. Как будет достаточно знаний, то затрону эту тему еще раз.
    Ответить с цитированием  
     

  7. #6  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от TintoPiko Посмотреть сообщение
    только учу Си
    Сам то на си++ не пишу вообще. Бейсик и Паскаль - там это запросто, а на си придётся повозиться.
    Что-то простое без динамических структур можно сделать без особых проблем, на http://cppstudio.com
    это всё описано.

    С динамическими же структурами придётся описывать свои функции работы со строками через указатели
    и резервирование памяти. На си++ это довольно геморно.

    Пожалуй начну, а дальше вы сами, читая мануалы, дело это небыстрое, кропотливое.

    Эта программа резервирует две строки, а функция AddToStr заменяет строку, переданную ей в первом аргументе
    на сумму(конкатенацию) строк.
    C++ Code:
    1. #include <iostream>
    2. #include <ctime>
    3.  
    4. using namespace std;
    5.  
    6. char* AddToStr (char *MyStr1, char *MyStr2)
    7. {
    8.     int ln1, ln2, lnnew;
    9.     ln1 = strlen(MyStr1);   //   Узнаем длину первой строки
    10.     ln2 = strlen(MyStr2);   //   Узнаем длину второй строки
    11.     lnnew = ln1 + ln2 + 1;  //   Сумма длин
    12.     //   Выделить память под новую строку
    13.     char* NewStrk = new char[lnnew];
    14.     strcpy (NewStrk, MyStr1);  //   Копируем в новую строку строку 1
    15.     strcat(NewStrk, MyStr2);   //   Добавляем к новой строке строку 2
    16.     delete [] MyStr1;  //   Удаляем строку 1 из памяти
    17.     return NewStrk;    //   Возвращаем новую строку
    18. }
    19.  
    20. int main (int argc, char *argv[])
    21. {
    22. system("cls");
    23.  
    24. /**  Переменные   **/
    25. char string[] = "Test1";
    26. char string2[] = "Test2";
    27.  
    28.     //for (int i = 0; i < 1000; i++)     // Крутим цикл для проверки бессбойной работы функции
    29.     cout << AddToStr(string, string2);
    30.  
    31.    system("pause");
    32.    return 0;
    33. }}


    Ваша задача зарезервировать двумерный массив из динамических строк(по ссылке целочисл, но можно заменить int на char).
    Написать процедуру вывода их в консоль(там определение границ, позиции элементов и вывод).
    Найти функцию на си++ для асинхронного ввода символов без ожидания. (т.е. номер нажатой клавиши, если что-то было нажато)
    Написать самопальную функцию ввода данных в строку(в вашем случае в ячейку двумерного дин. массива строк) используя код выше.
    Сделать выбор нужной ячейки стрелочками на клавиатуре. (в беск цикле исп. ввод с клавиатуры по условию менять позицию активной ячейки)
    Интегрировать свой самопальный ввод так, чтобы он вводил на отображаемом месте ячейки.

    Лично мне каждый пункт требует времени на поиск информации о реализации этого в с++,
    а времени сейчас крайне немного, попробуйте сначала вы погуглить и сделать это, если совсем будет труба
    тогда попробую, но ничего обещать не буду(мне это сделать на самом деле несложно, просто нет столько
    времени, чтобы сидеть и пол дня гуглить, надеюсь это вам понятно).
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  8. Пользователь сказал cпасибо:

    TintoPiko (04.05.2017)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 19.12.2016, 15:04
  2. Ответов: 0
    Последнее сообщение: 23.04.2015, 22:08
  3. Перевод из VB.net в VB6
    от suxoranu в разделе Visual Basic
    Ответов: 4
    Последнее сообщение: 29.11.2014, 13:26
  4. Ответов: 1
    Последнее сообщение: 19.02.2014, 08:49
  5. Перевод чисел
    от azalivin в разделе QBasic
    Ответов: 7
    Последнее сообщение: 25.05.2011, 09:15
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •