Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Arahn
1

Не работает gets()

18.06.2011, 00:56. Просмотров 1900. Ответов 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() не дожидается ввода и сразу выдает цикл и соответственно нулевой ответ. Что делать может кто поможет.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2011, 00:56
Ответы с готовыми решениями:

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией...

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

Атрибут ALT не работает в выделенной области, хотя работает на всей картинке
&lt;html&gt; &lt;head&gt; &lt;title&gt;Атрибут ALT&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;center&gt; &lt;img...

Не работает монитор комп работает а на мониторе нет изображения что делать ?
У меня компьютер старый давно покупал и мне захотелось проверить включается или нет и тут возникла...

6
Каратель
Эксперт С++
6593 / 4014 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
18.06.2011, 01:00 2
Цитата Сообщение от Arahn Посмотреть сообщение
asi!="1"
"1" - это строка, а char это '1'
0
591 / 529 / 76
Регистрация: 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();
Спасибо помогло а то мучился весь вечер)
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
5473 / 4868 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 06:06 6
Для Arahn : http://cppstudy.wordpress.com/... et-and-co/

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

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Решил портировать игру на андроид но управление не работает. Прыжок и стрельба работает
Решил портировать игру на андроид но управление не работает. Прыжок и стрельба работает. Очень...

Multimap STL - работает только запись в файл, поиск в файле не работает
И снова здравствуйте. Снова я прошу вашей помощи. Переделал программу с мапом в мульти мап, но что...

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

Надо понять правильно работает код или нет. И работает ли он вообще
Он должен вычислить сумму с точностью эпсилон #include &lt;iostream&gt; using namespace std; ...


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

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

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