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

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

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

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

18.06.2011, 00:56. Просмотров 1600. Ответов 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++
Проверяю данные, но на компьютере не работает, в чем роблема? #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; ...

Приложение работает в Win2K, не работает в Win2003 - C++
Может кто сталкивался - прога написанная на VC++ нормально работает в Win2K(Prof/Server), но &quot;вылетает&quot; в Win2003Server. Причем случиться...

Не работает в функции, но работает в обработчике кнопки - Delphi
Имеется код: procedure GetParam(pnum: integer); var s : TStringList ; i : integer ; begin s := TStringList . Create ; ...

Запрос работает в Access, но не работает в коде - Visual Basic .NET
Можете подсказать. Объединила Visual Studio(Basic) с Access, но на одной из форм не работает запрос, который в Access работает....

Код не работает в Intellij, но работает NetBeans - JAVA IDE
Почему один и тот же код, не работает Intellij, но работает в NetBeans import javax.swing.*; import java.awt.*; public class...

На отладке работает, но не работает в нужной папке - C#
Ужас какой то, не могу вычислить в чем ошибка, ведь на отладке и релизе работает, а когда начинаешь пихать в папку где оно должно потом...

Код работает в debug но не работает в release - Visual C++
#include &quot;stdafx.h&quot; #include &quot;mxml.h&quot; #include &quot;stdio.h&quot; int main(){ mxml_node_t *topNode; FILE *f=NULL; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.06.2011, 01:00     Не работает gets() #2
Цитата Сообщение от Arahn Посмотреть сообщение
asi!="1"
"1" - это строка, а char это '1'
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.06.2011, 01:08     Не работает gets() #3
C++
1
2
cin>>asi;
cin.ignore();
Arahn
Сообщений: n/a
18.06.2011, 11:12     Не работает gets() #4
Цитата Сообщение от OstapBender Посмотреть сообщение
C++
1
2
cin>>asi;
cin.ignore();
Спасибо помогло а то мучился весь вечер)
rambayke
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
02.08.2012, 05:07     Не работает gets() #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);
        
        
        }
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 06:06     Не работает gets() #6
Для Arahn : http://cppstudy.wordpress.com/2009/0...in-get-and-co/

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

Работает wi-fi на ноуте но не работает на смартфоне lg p970 - Wi-Fi
Доброго времени суток проблема следующая, есть модем 4 портовый tenda w548d, интернет работает как на перональном компьтере так и на...

Один и тот же код и работает, и не работает - PHP БД
В общем, я использую css для рисования кнопок. Суть в том, что обычная кнопка (submit) выполняет код, приведенный ниже, а моя (button) нет....

В корпусе не работает пк, без корпуса работает - Компьютерное железо
Добрый вечер! Проблема моего ПК в том, что после зависания (Завис в процессе воспроизведения видео, рядом даже не было никого) и...

1C 8.x Универсальный отчет 50х50, работает не работает :) - 1С
1С 8.1 Управление торговлей. Универсальный отчет по регистру &quot;ВБС&quot; выводит дополнительные поля, а по другому регистру &quot;БалансКлиента&quot; не...

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


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

Или воспользуйтесь поиском по форуму:
rambayke
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
02.08.2012, 07:30     Не работает gets() #7
Огромнейшее спасибо! все работает!
Yandex
Объявления
02.08.2012, 07:30     Не работает gets()
Ответ Создать тему
Опции темы

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