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

Программа для записи символов - C++

Восстановить пароль Регистрация
 
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 199
23.04.2014, 23:41     Программа для записи символов #1
Приходится пересоздать тему так как ответа я так и не получил, а сам не могу разобраться)
Вот черновая прога, я уже понял что можно использовать 1 двумерный массив, переделаю.
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
#include<iostream>
#include<clocale>
using std::cout;using std::endl;using std::cin;
int main() {
    std::setlocale(LC_ALL, "Russian_Russia.1251");char z='1';int x=0,d=0;char pam[4][21]={0};
    do {
    char str[22]={0};
    cout<<"Введите набор чисел, буквы из ряда чисел будут убраны автоматически, 
нельзя вводить ряд из одних букв или ряд длинее 20 символов"<<endl;
    cin.getline(str,sizeof(str));
 
    for(int i=0;i<21;i++){ 
        if (str[20]!='\0'){
cout<<"Ряд слишком длинный пожалуста Введите более короткий ряд"<<endl;
cin.ignore(255, '\n');break;
}
        if (!(str[i]>47 && str[i]<58)&& str[i]!='\0'){
            for (int p=i;p<20;p++){
                str[p]=str[p+1];
            }
        i--;} //проверяем на ошибки и убираем буквы если они были введены
    }
    for(int j=0;j<21;j++){
        if (str[20]!='\0')break;
        pam[d][j]=str[j];
        if (j==20) {d++;x++;}
    }// Переписываем из массивы str в масив pam
    if (x>1) {
        cout<<"Если хотите продолжить ввод нажмите 1, если нет нажмите любую клавишу"<<endl;
        z=cin.get();
    }
    
    }
    while(z=='1');
    system("pause");
}
вводим слишком длинное число нажимаем enter
срабатывают вот эти строки(проверял в отладке)

C++
1
2
3
4
5
6
if (str[20]!='\0'){
cout<<"Ряд слишком длинный пожалуста Введите более короткий ряд"<<endl;
cin.ignore(255, '\n');break;
}
 
if (str[20]!='\0')break;
Круг начинается заново срабатывает 8 и 9 строка, но 10 почему то не срабатывает и программа не ждет что мы введем данные а выполняется далее.Не могу понять почему.
и в чем отличие этих функций?

C++
1
2
in.ignore(255, '\n');// игнорируются 255 символов в буфере или все символы до перевода строки
cin.ignore(255, '\n').get();// а эта что делает?
Программа для записи символов в массив
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 23:41     Программа для записи символов
Посмотрите здесь:

C++ Программа для записи дисков
C++ Программа для подсчета символов
C++ Программа для подсчитывания символов
Программа для записи в файл чисел в обратном порядке C++
Программа для записи звуков. C++
C++ Программа для переставления символов
C++ Программа для работы с текстовым файлом. Описать ф-ю для подсчета строк, состоящих из одинаковых символов
Программа для генерации паролей из 8 символов, где 6 букв, а 2 последние цифры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4277 / 3708 / 1246
Регистрация: 14.04.2014
Сообщений: 14,503
23.04.2014, 23:45     Программа для записи символов #2
Отличие в том, что get() ещё один символ извлекает.
Yandex
Объявления
23.04.2014, 23:45     Программа для записи символов
Ответ Создать тему
Опции темы

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