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

Не производиться ввод при помощи функции gets(s) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатель и рекурсия http://www.cyberforum.ru/cpp-beginners/thread684570.html
Подскажите почему не работает? (логика работы программы изложена в комментах к ней) #include <iostream> #include <windows.h> #include <string.h> #include <stdio.h> using namespace std; void reverse(char *s); int main()
C++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.програма на С++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.Програма на С++.ПОЖАЛУЙСТА ПОМОГИТЕ,ОЧЕНЬ СРОЧНО! http://www.cyberforum.ru/cpp-beginners/thread684560.html
программа обработки символьной строки C++
Если первый аргумент командной строки опция-а, то распечатать другие аргументы без их первых символов, а если первой идет опция-r, то распечатать аргументы через один в обратном порядке. (Если аргументов нет - выдать сообщение.) Пока только есть вот такая наброска: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *p1, *p2;
Не вызывается деструктор C++
#include <iostream> using namespace std; class myclass { int a; public: myclass(); // конструктор ~myclass(); // деструктор void show(); };
C++ Дана вещественная матрица размерности n * m. поменять местами строки с максимальным и минимальным элементами. http://www.cyberforum.ru/cpp-beginners/thread684544.html
Дана вещественная матрица размерности n * m. поменять местами строки с максимальным и минимальным элементами.
C++ Напишите функцию, которая вычисляет сигнум-функцию числа Напишите функцию, которая вычисляет сигнум-функцию числа. Сигнум-функция возвращает: 1 если число положительное, -1 если число отрицательное, и 0 если оно равно нулю. Число передается через параметр типа int, возвращаемое значение - int. подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
31.10.2012, 00:12  [ТС]     Не производиться ввод при помощи функции gets(s)
Пробовал и при помощи gets(), результат аналогичен. Также проблема не в отладчиле:
ilyuha21st@coldshoot:/media/win_d/Helloworld/currents$ ./algo6-recursion
<Применение функции вычисления факториала>
Введите значение: 3
6
<Применение функции возвращающей наибольший общий делитель>
Введите 2 значения: 3 5
1
<Применение функции отобращающе строку в обратном порядке>
Введите строку: ilyuha21st@coldshoot:/media/win_d/Helloworld/currents$

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
Одного cin.sync не достаточно. Сделайте так:
Код C++
1
2
cin.clear();
cin.sync();
Все дороги ведут в Рим.

Добавлено через 6 минут
Друзья-товарищи! Все кто обладает компилятором:
Bash
1
2
ii  gcc                         4:4.6.3-1ubuntu5            GNU C compiler
ii  g++                         4:4.6.3-1ubuntu5            GNU C++ compiler
большая просьба проверить следующий код:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Рекурсия. Вычисление факториала. Функция, возвращающая
// наибольший общий делитель. Функция возращающая строку в обратном
// порядке.
 
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
 
// Функция вычисления факториала
int factorial( int val );
// Функция возвращает наибольший обший делитель
int rgcd( int v1, int v2 );
// Функция отображающая строку в обратном порядке
void reverse(char *s);
 
int main()
{
    // Применение функции вычисления факториала
    cout << "<Применение функции вычисления факториала>" << endl;
    cout << "Введите значение: ";
    int some_val;
    cin >> some_val;
    
    cout << factorial(some_val) << endl;
 
    // Применение функции возвращающей напибольший общий делитель
    cout << "<Применение функции возвращающей наибольший общий делитель>" << endl;
    cout << "Введите 2 значения: ";
    int dig1 = 0, dig2 = 0;
    cin >> dig1 >> dig2;
    cout << rgcd(dig1, dig2) << endl;
 
    cout << "<Применение функции отобращающе строку в обратном порядке>" << endl;
    cout << "Введите строку: ";
    char a[80];
    cin.clear();
    cin.sync();
    cin.getline(a, 80);
    //    gets(a); // ВОТ НА ЭТОМ МЕСТЕ ПРОГРАММА ЗАВЕРШАЕТСЯ!
    reverse(a);
    return EXIT_SUCCESS;
}
 
// Функция отображающая строку в обратном порядке
void reverse(char *s)
{
    if (*s)
    reverse(s + 1);
    else
    return;
    cout << *s;
}
 
// Функция вычисления факториала
int factorial( int val )
{
    if ( val > 1 )
    return factorial(val - 1) * val;
    return 1;
}
 
// Функция возвращает наибольший обший делитель
int rgcd( int v1, int v2 )
{
    if ( v2 != 0 ) 
    return  rgcd(v2, v1 % v2);
    return v1;
}
 
Текущее время: 23:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru