С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.79
Lotles
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 167
#1

getchar - C++

28.11.2010, 18:47. Просмотров 5297. Ответов 38
Метки нет (Все метки)

Не пойму почему getchar 2-ой раз запрашивает ввести строку, я же написал в цикле условие, что выполняется, если ch!=10
C++
1
2
3
4
    char ch=0;
    for (int i=0;ch!=10;i++){
        char ch=getchar();
        new_str_cop[i]=ch;
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
27
28
29
30
31
32
33
34
35
36
37
38
#include "stdafx.h"
#include <conio.h>
using namespace std;
char* new_str_cop=new char[50];
void copy(){
    char ch=0;
    for (int i=0;ch!=10;i++){
        char ch=getchar();
        new_str_cop[i]=ch;
    }
    new_str_cop[i]='\0';
}
void editing(){
    int j=0;
    char* new_str_ed=new char[50];
    for(int i=0;i<strlen(new_str_cop);i++){
        if (new_str_cop[i]==9){
            new_str_ed[j]='T';
            j++;
        }
        if (new_str_cop[i]==8){
            new_str_ed[j]='B';
            j++;
        }
        else
            new_str_ed[j]=new_str_cop[i];
        j++;
    }
        cout << new_str_ed << endl;
    }
 
 
 
    void main(){
        __asm int 3;
        copy();
        editing();
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2010, 18:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос getchar (C++):

getchar () - C++
a = getchar (); if ( a == 'q' ) // действие 1 a = getchar (); if ( a == 'w' ) // действие 2 Почему не работает такая...

Функция getchar() в С++ - C++
#include &lt;iostream&gt; // для оператора cout #include &lt;cctype&gt; // для функции islower #include &lt;cmath&gt; //для математич. вычислений ...

[C++] аналог getchar() - C++
привет ВСЕМ, ЗАДАЧА: Найти периметр и площадь равнобедренной трапеции с основаниями a и b (a &gt; b) и углом alpha при большем основании...

Getline, getchar - C++
Подскажите пожалуйста, как я поняла getline это шаблон функции, который построчно извлекает строки из выходного потока, но что делается...

getchar() в linux - C++
Здравствуйте! Я создал небольшую консольную программу. Сначала мне нужно ввести данные с помощью cin и нажать Enter. Сразу после cin у меня...

Функция getchar! - C++
Здравствуйте, поясните на пальцах, что делает данная программа? #include &lt;stdio.h&gt; int main(void) { char ch; printf(&quot;Enter...

38
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
28.11.2010, 18:50 #2
Lotles, Э. А вы понимаете чей ASCII код = 10?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.11.2010, 18:59 #3
Цитата Сообщение от Lotles Посмотреть сообщение
char ch=0;
* * * * for (int i=0;ch!=10;i++){
* * * * * * * * char ch=getchar();
* * * * * * * * new_str_cop[i]=ch;
а зачем в вашем алгоритме здесь i
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,388
Записей в блоге: 2
Завершенные тесты: 1
28.11.2010, 19:05 #4
Цитата Сообщение от go Посмотреть сообщение
а зачем в вашем алгоритме здесь i
так массив же заполнять, i нужна для индексации указателя.

Добавлено через 49 секунд
а вот эту строчку я реально не понял
C++
1
__asm int 3;
0
slice
35 / 78 / 4
Регистрация: 04.11.2010
Сообщений: 249
28.11.2010, 19:11 #5
Цитата Сообщение от Kastaneda Посмотреть сообщение
а вот эту строчку я реально не понял
__asm int 3;
чего не понятного? дебажит чувак таким извращенным способом.
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,388
Записей в блоге: 2
Завершенные тесты: 1
28.11.2010, 19:13 #6
slice, а по-подробней?
0
slice
35 / 78 / 4
Регистрация: 04.11.2010
Сообщений: 249
28.11.2010, 19:17 #7
почти что то же самое что брэкпоинт поставить
int - это не integer а interrupt
1
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,388
Записей в блоге: 2
Завершенные тесты: 1
28.11.2010, 19:21 #8
да, уже дошло) А разве консоль Win32 поддерживает прерывания BIOS ? Или они там эмулируются?
0
slice
35 / 78 / 4
Регистрация: 04.11.2010
Сообщений: 249
28.11.2010, 19:21 #9
не знаю
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,388
Записей в блоге: 2
Завершенные тесты: 1
28.11.2010, 19:24 #10
все понял, я туплю)

Добавлено через 2 минуты
Цитата Сообщение от slice Посмотреть сообщение
не знаю
Да, они там эмулируются, винда то не даст прерывания генерировать.

Не по теме:

прочитал твое сообщение до редактирования - это было кому то адресованно?

0
slice
35 / 78 / 4
Регистрация: 04.11.2010
Сообщений: 249
28.11.2010, 19:26 #11
мысли вслух
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,388
Записей в блоге: 2
Завершенные тесты: 1
28.11.2010, 19:38 #12
Lotles, вы очевидно пытаетесь отловить нажатие кнопки "enter" ? вот кусок файла WinUser.h, где определены все клавиши:
C++
1
2
3
4
5
6
7
8
9
#define VK_BACK           0x08
#define VK_TAB            0x09
 
/*
 * 0x0A - 0x0B : reserved
 */
 
#define VK_CLEAR          0x0C
#define VK_RETURN         0x0D
похоже enter недоступна, такое можно реализовать через низкоуровневые ф-ции I/O API.
или попробовать так:
C++
1
for (int i=0;ch!='\n';i++)
0
Lotles
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 167
28.11.2010, 20:52  [ТС] #13
Я не хочу нажатие Enter отловить, мне надо скопировать строку в new_str_cop из строки, которую я ввел с помощью getchar(), и понять почему работает не так, как я думаю
Пжт тока не надо свои алгоритмы придумывать, мне интересно почему здесь не работает
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,388
Записей в блоге: 2
Завершенные тесты: 1
28.11.2010, 21:01 #14
Цитата Сообщение от Lotles Посмотреть сообщение
Я не хочу нажатие Enter отловить
тогда объясните вот это "ch!=10;", как вы считаете - когда цикл должен прикратится?
И кстати вы пробовали "ch!='\n'" ?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.11.2010, 21:06 #15
Цитата Сообщение от Kastaneda Посмотреть сообщение
И кстати вы пробовали "ch!='\n'" ?
C
1
ch!='EOF'
0
28.11.2010, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2010, 21:06
Привет! Вот еще темы с ответами:

как работает getchar() ? - C++
int c; c=getchar(); cout &lt;&lt; c; Набираю на клаве число 123 Cout выдает число 49 ??? Добавлено через 1 минуту из-за нажатия...

функции getchar() и putchar() - C++
Здравствуйте всем. Такая вот задачка: Есть вот такой код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; ...

Getchar и putchar EOF - C++
Подскажите что за символ такой EOF? Чисто догадываясь это 0, но не работает. #include &lt;stdio.h&gt; int main() { int c; while((c...

Массив: функции getchar и putchar - C++
Задан массив. «Фамилия_стаж работы_зарплата». Преобразовать массив так: стаж работы увеличить на год, если он станет равен 10, то зарплату...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.