25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

При вводе строки выввести символы через один

15.08.2015, 23:33. Показов 1199. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я объявил i=i+2. По идеи при вводе строки, символы должны выводится через один...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma hdstop
#include <stdio.h>
#include <conio.h>
#define eof 26
#define max 1000
#include <stdlib.h>
 
int getline(char s[], int lim)
{
  int i,c;
  for(i=0;(c=getchar())!=eof && i<lim && c!='\n';i=i+2) //Почему 2 шага не работают?
  s[i]=c;
  return(i);
}
int main()
{
  char a[max];
  getline(a,max);
  printf("%s\n",a);
  getch();
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2015, 23:33
Ответы с готовыми решениями:

Программа, заменяющая при вводе символы на звездочки
начинаю писать на С++ просто так нравится ну так вот такая проблема хочу написать программу которая...

Некорректно отображаются русские символы при вводе в консоль
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int...

Как сделать так, что бы длинна строки сама менялась при вводе строки?
Есть такой код #include &quot;stdafx.h&quot; #include &quot;enter.h&quot; #include &lt;stdio.h&gt; #include &lt;math.h&gt;...

Как при вводе текста в один Edit загружать те же символы во второй Edit?
помогите есть 2 mdi окна в них эдиты. как при вводе текста в 1 эдит загружать теже символы во...

3
Модератор
Эксперт С++
13678 / 10888 / 6465
Регистрация: 18.12.2011
Сообщений: 29,055
16.08.2015, 07:25 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstring>
using namespace std;
int getline(char s[], int lim)
{
   cin.getline(s,lim);
   return strlen(s);
}
int main()
{
  const int MAX=1000;
  char a[MAX];
  int n=getline(a,MAX);
  for(int i=0;i<n;i+=2)
      cout<<a[i];
  cout<<endl;
  system("pause");
}
Но если надо, чтобы именно при вводе отображался каждый второй символ,
то придется использовать низкоуровневый ввод через getch():
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
25
26
#include <conio.h>
#include <stdio.h>
int getline(char s[], int lim)
{
  int i,n=0;
  char c;
  for(i=0;(c=_getch())!=13 && i<lim-1;i++) 
  {
       if(i%2==0)
       {
          _putch(c); // отображаем и записываем каждый второй символ
          s[n++]=c;
       }
  }
   s[n]=0; // признак конца строки
  return n+1;
}
int main()
{
  const int MAX=1000;
  char a[MAX];
  int n=getline(a,MAX);
  puts("\n");
  puts(a);
  _getch();
}
0
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
16.08.2015, 14:35  [ТС] 3
Очень странно получается, я просто переделал твой код. Я просто ещё не знаком с "сиаут" и сделал по своему
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
25
26
#pragma hdstop
#include <stdio.h>
#include <conio.h>
#define eof 26
#define max 1000
#include <stdlib.h>
 
getline(char s[], int lim)
{
int i,c;
for(i=0;(c=getchar())!=eof && i<lim && c!='\n';i++)
s[i]=c;
s[i]='\0';
i++;
return(i);
}
int main()
{
  char a[max];
  char b[max];
int n=getline(a,max);
for(int i=0; i<n; i+=2)
          b[i]=a[i];
  printf("%s",b);
  getch();
}
Чё за дела с выводом?
0
Модератор
Эксперт С++
13678 / 10888 / 6465
Регистрация: 18.12.2011
Сообщений: 29,055
16.08.2015, 14:58 4
Лучший ответ Сообщение было отмечено Aqua77 как решение

Решение

Цитата Сообщение от Aqua77 Посмотреть сообщение
C++
1
2
for(int i=0; i<n; i+=2) 
   b[i]=a[i];
C++
1
2
3
4
int j=0;
for(int i=0; i<n; i+=2) 
   b[j++]=a[i];
b[j]=0;
1
16.08.2015, 14:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2015, 14:58
Помогаю со студенческими работами здесь

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

Сделать проверку на символы при вводе
Сделал прогу на задачу&quot;Дано натуральное число, равное выраженной в копейках цене некоторого товара,...

Отбросить ненужные символы при вводе
Здравствуйте! Задача. Введите строку &quot;characters&quot; стандартного входного устройства. Сохраните...

При вводе пароля заменить символы на ****
Такой вопрос, у меня есть форма в которой есть textBox, для ввода пароля. Как сделать чтобы при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru