Форум программистов, компьютерный форум CyberForum.ru

Как в консоли считать информацию(в массив), не учитывая enter??? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.57
Shooroop
0 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 23
21.12.2011, 23:48     Как в консоли считать информацию(в массив), не учитывая enter??? #1
День добрый всем! Нам задали программу написать, она не очень сложная , но у меня возникает вопрос только по поводу ввода символов через клавиатуру:
Символы вводиться либо в строчку без пробелов и точек, либо после каждого символа нажимается кнопка Enter.Причем надо записать это в char массив из n(const) элементов, и вводимое число символов будет не всегда равно n (Символы в данной задаче используются целые числа от 0 до 9).
Не подскажете как в char массив через cin.getline или что нибудь другое записать эти символы не учитывая enter,если ввод будет осуществлен через "enter-нажимание" ?
Заранее Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 23:48     Как в консоли считать информацию(в массив), не учитывая enter???
Посмотрите здесь:

C++ Не получается считать информацию из файла в 2-х мерный массив (С++)
Как сделать, чтобы при вводе в консоли <Enter> не переводил курсор на начало следующей строки? C++
C++ Как побайтно считать информацию из исполняемого файла
C++ Как сделать, чтобы сочетание клавиш 'enter'+'space' выходили из консоли
Как считать информацию с файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
22.12.2011, 00:52     Как в консоли считать информацию(в массив), не учитывая enter??? #2
C++
1
2
char array[100];
std::cin >> array; // до 99 символов + 1 на завершающий ноль. но тут можно не только циферки вбить.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
22.12.2011, 00:52     Как в консоли считать информацию(в массив), не учитывая enter??? #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <conio.h> 
#include <iostream>
using namespace std;
 
int main()
{
   const int N = 5;
   char buf[N + 1] = {'\0'};
 
   for(int i = 0; i < N; i++) {
         buf[i] = getch();  
         cout.put(buf[i]);
   }
   cout << endl << buf << endl;
   return 0;
}
Shooroop
0 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 23
22.12.2011, 22:22  [ТС]     Как в консоли считать информацию(в массив), не учитывая enter??? #4
Спасибо огромное , я попробовал и так и так , но в общем как xAtom сделал я запомню,это понадобиться , а вот просто cin >> array не получается , у меня не считывает вводимые символы.
Мне нужно ввести с клавиатуры символы (без всяких пробелов точек и т.д.),передать его в char массив(массив carr1 в main) - все это через void функцию. я попробовал у меня не хочет сохранять символы.Вот код:
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
// ...
using namespace std;
void fin(char *,int);//объявление (все нужные библиотеки включены )
const int n=25;
int main()
{
//...
char carr1[n]={'0'};  // объявляю char массив и все элементы обнуляю
int num1=0;
fin(carr1,num1);     // вызов функции
//...
}
void fin(char * finarr,int lenarr)  // lenarr для того, чтобы знать количество введенных символов меньше n
{
         int i=0; 
     cout<<"Введите символы (В строчку) ";
     cin.getline(finarr,n,'\n');  // читает все символы до нажатия enter ('\n')
    /*Пробовал через cin>>finarr  тоже не помогло*/
     for (i;i<n;i++)
        if(finarr[i]='\0'){ i=lenarr; // записываем кол-во введенных символов
                            break;
                          }
        else continue;
}
Yandex
Объявления
22.12.2011, 22:22     Как в консоли считать информацию(в массив), не учитывая enter???
Ответ Создать тему
Опции темы

Текущее время: 17:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru