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

Определение введенного типа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как вызвать функцию из функции main? http://www.cyberforum.ru/cpp-beginners/thread627572.html
работаю в деве. предположим я создал проект, изначально в нем находится файл main.cpp. предположим я создал в нем еще один файл с именем func.cpp и описал там функцию int xxx(int), а как теперь мне вызвать эту функцию из main.cpp?
C++ multi-character character constant Привет! Я решил написать виселицу на С++ для консоли. И у меня вылетает ошибка multi-character character constant. Вот сам код: #include<iostream> #include<string.h> using namespace std; int main() { int q; http://www.cyberforum.ru/cpp-beginners/thread627567.html
C++ Вывод суммы четных элементов массива
Напишите программу, печатающую на экране сумму четных элементов заданного массива вещественных чисел.
Функция не понимает меня C++
Вот попытался написать функцию для подсчета комбинаций "ab" (Читаю книгу, пытаюсь делать упражнения, но застрял что то слишком рано :( ) Вот как она выглядит у меня: int countab(string st) { int count=0; int i=1; /* 10 строка */ while (i<=strlen(st)) {
C++ Изменить порядок следования элементов в массиве http://www.cyberforum.ru/cpp-beginners/thread627553.html
изменить порядок следования элементов в массиве так чтобы сначало располагались все отрицательные элементы за тем положительные а потом нули найти сумму элементов массива расположенных после минемального элемента
C++ измените порядок следования элементов в массиве так,чтобы... помогите решать решение измените порядок следования элементов в массиве так,чтобы располагались все отрисательные элементы,затем положительные,а потом нули подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
23.07.2012, 15:33     Определение введенного типа
Как-то разбирался с этим вопросом, свой код
Определить все данные, тип которых вводится из командной строки

А вот твой вариант этой проги:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
 
#define razmer_bufera 20
 
 
using namespace std;
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
int f (char* p, char* tip) {
 
 //проверка- int не int;
 if (!(strcmp(tip, "int"))) {  
  if (atoi(p)&&!strchr(p, '.')) 
   printf ("%s целое число\n", p);
  else if ((strlen(p)==1)&& p[0]=='0') 
    printf ("%s целое число\n", p);
  return 0;
 }
 
 //проверка- double не double;
 if (!(strcmp(tip, "float"))|| !(strcmp(tip, "double"))) { 
  if (!(atoi(p)&&!strchr(p, '.')))  
   if (!((strlen(p)==1)&& p[0]=='0'))   
    if (atof(p)) 
     printf ("%s дробное число\n", p);
     return 0;
 }
 
 //проверка- char не char;
 if (!(strcmp(tip, "char"))) { 
  if (!(atoi(p)&&!strchr(p, '.')))
   if (!((strlen(p)==1)&& p[0]=='0'))
    if (!atof(p))
     if (strlen(p)== 1) 
      printf ("%s символ\n", p);
      return 0;
 }
 
 //проверка- char* не char*;
 if (!(strcmp(tip, "char*"))) { 
  if (!(atoi(p)&&!strchr(p, '.')))
   if (!((strlen(p)==1)&& p[0]=='0'))
    if (!atof(p))
     if (!(strlen(p)== 1)) 
      printf ("%s строка\n", p);
      return 0;
 }
 
 return 1;
}
 
 
 
 
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
int main(int argc, char* argv[]) {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 //Это типы
 char* tipi [4]= {(char*)"int", (char*)"double", (char*)"char", (char*)"char*"};
 
 printf ("Вводи что хочешь\n");
 
 char proba [razmer_bufera];
 //Будь осторожен с переполнением буфера!!!!
 gets (proba);
 
 
 for (int i= 0; i< 4; i++) {
  if (f (proba, tipi [i])) {
   printf ("Что-то ты не то ввёл\n");
   break;
  }    
 }
 
 getchar ();
 
 
 return 0;
}
корректно распознаёт четыре типа (float приравнен к double). Твоя задача по определению типа преобразовать его в переменную нужного типа. То есть, если ты, к примеру вводишь число 3, фактически ты вводишь строку "3", а не число. Тип определится, а вот дальше тебе нужно преобразоват "3"-> 3, смотри функции "atoi" и "atof"
 
Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru