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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Arahn
#1

Не работает gets() - C++

18.06.2011, 00:56. Просмотров 1622. Ответов 6
Метки нет (Все метки)

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
39
40
41
42
43
44
45
46
47
48
49
#define _CRT_SECURE_NO_DEPRECATE
 
#include <iostream>
#include <Windows.h>
#include <time.h>
#include <string>
 using namespace std;
void main1();
void main2();
 int main(){
 SetConsoleCP(1251);
SetConsoleOutputCP(1251);
string asi;
do {
cout<<"Выберите программу для запуска (1-2), 0 - выход: ";
    cin>>asi;
    if (asi=="1") { system("cls");
    main1();
    system("cls");}
if (asi=="2") { system("cls");
    main2();
    system("cls");}
if (asi=="0") break;
else {system("cls");
cout<<"Неправильный ввод\n";}}
while (asi!="1"||asi!="2"||asi!="0");}
 
 void main2(){
 char ch[401];
 int i;
 int v=0;
 int c=0;
 int b=0;
 for (i=0; i<401;i++) ch[i]=0;
 cout<<"Введите фразу до 400 символов ";
 gets(ch);
 for (i=0; i<401;i++) {
     switch (ch[i]) {
     case 0 : break;
     case ' ' : c++;
     default : v++;}
     if (((ch[i]=='к')||(ch[i]=='К'))&&(ch[i+1]=='о')&&(ch[i+2]=='т')) b++;
 }
 cout<<v<<" Весего символов\n";
  cout<<v-c<<" Букв без пробелов\n";
 cout<<b<<" Слов кот в тексте\n";
  system("pause");
 }
 void main1(){}
Доброго времени суток у меня проблема такая:
gets(ch); в функции main2() не дожидается ввода и сразу выдает цикл и соответственно нулевой ответ. Что делать может кто поможет.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2011, 00:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает gets() (C++):

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает - Windows 7
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с недавних пор мышь стала работать через раз....

IE опять все портит, в 9 версии работает, а в остальных нет. не работает float - HTML, CSS
сайт http://gkantecreo.ru/ вверху в шапке слайдер в блоке div с css {float: left; padding-left: 15px;} везде прижат слева, а в &quot;интернет...

Так работает или не работает второй слот для оперативной памяти - Оперативная память
Моему компьютеру уже больше 7-ми лет, купили мне его в сентября 2005 года. На то время очень даже неплохие характеристики: Процессор:...

Не работает скомпилированный EXE файл хотя в самой среде игра работает - Unity, Unity3D
Я почти закончил разработку своей игры на Unity2D но после запуска скомпилированного EXE файла половина текстур не отображается хотя в...

не работает в ворде веб компонент,и скачав обновление ow 11 не работает все равно - MS Word
проблема с веб элементами и обновлениями на них))

У клиента не работает роутер. У Меня дома работает. TRENDnet TEW-432BRP - Сетевое оборудование
Добрый день! У клиента установлен TRENDnet TEW-432BRP. Настроен для подключения к Beeline, но это не совсем важно. До определенного...

6
Jupiter
Каратель
Эксперт С++
6560 / 3981 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.06.2011, 01:00 #2
Цитата Сообщение от Arahn Посмотреть сообщение
asi!="1"
"1" - это строка, а char это '1'
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.06.2011, 01:08 #3
C++
1
2
cin>>asi;
cin.ignore();
0
Arahn
18.06.2011, 11:12 #4
Цитата Сообщение от OstapBender Посмотреть сообщение
C++
1
2
cin>>asi;
cin.ignore();
Спасибо помогло а то мучился весь вечер)
rambayke
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
02.08.2012, 05:07 #5
всем привет! такая ситуация:
перед тем, как ввести стоку, нужно нажать на .
потом, когда я беру строку, почему-то первой буквы нет.
я ввожу, например, слово "дом" после ENTER’а, а он выводит тока "ом". почему?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        if(kbhit()) 
        {
            
                                int cr = getc(stdin);
        while(cr == 10)
        {
            printf("<ENTER>");
            cr = getc(stdin);
        }
 
        char s[20];
        gets(s);
        printf("text: %s\n",s);
        
        
        }
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 06:06 #6
Для Arahn : http://cppstudy.wordpress.com/2009/03/27/cin-get-and-co/

Добавлено через 11 минут
Цитата Сообщение от rambayke Посмотреть сообщение
почему?
cr = getc(stdin) извлекает символ из потока в cr, поэтому gets(s); извлекает на один символ меньше.
C++
1
printf("text: %c%s\n", cr, s);
0
rambayke
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
02.08.2012, 07:30 #7
Огромнейшее спасибо! все работает!
0
02.08.2012, 07:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2012, 07:30
Привет! Вот еще темы с ответами:

В Windows Forms некоректно работает метод, хотя в консоли работает правильно - C#
//Данный метод должен заменять все элементы в массиве на 1, после найменьшего. public string getNewArray(int array) { ...

При включении компа у меня не работает монитор, но нормально работает ТВ-выход - Компьютерное железо
Уже несколько дней рву волосы на голове.... Такая проблемка: при включении компа у меня не работает монитор, только мигает лампочка...

Windows 7, не работает часть служб, не работает сеть, восстановление системы не помогает - Windows 7
Приветствую коллеги! Сам админю уже лет 10, не случалось ситуации еще что гугл не помогал, но вот пришел в организацию, на пк банк клиент,...

Работа с excel: 11 версия не работает с 2010 офисом, но работает с 2007, 2013 - C++/CLI
Имеются несколько Microsoft.Office.Interop.Excel.dll,которые используются для записи в excel документ. Проблема в том что 11 версия не...


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

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

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