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

Перевод из строки в число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ atal error C1010: unexpected end of file while looking for precompiled header directive. http://www.cyberforum.ru/cpp-beginners/thread60945.html
Как убрать эту ошибку?
C++ Заменить все малые латинские буквы символом «$» Необходимо составить и отладить указанную функцию. В главной программе, если в задании не предложено другое, следует описать два массива указанного в задании типа Sl и S2. Элементы первого массива задать при описании, второго — ввести с клавиатуры. Обработать каждый из массивов с помощью составленной функции и результаты вывести на экран. Написать функцию, которая для заданного в качестве пара... http://www.cyberforum.ru/cpp-beginners/thread60936.html
Вывести на экран слова начинающиеся с той же буквы, что и первое слово предложения. Напечатать строку после изъятия этих слов. C++
Помогите, пожалуйста с программой: Вывести на экран слова начинающиеся с той же буквы, что и первое слово введенного предложения. Напечатать строку после изъятия этих слов. Заранее благодарю.
Определить количество и сумму цифр числа C++
Доброго времени суток. Дано натуральное число N. Определить количество и сумму цифр этого числа. Спасибо.
C++ Сформировать одномерный массив http://www.cyberforum.ru/cpp-beginners/thread60883.html
Из строки типа "Привет 123й, я 548й, нам нада передать 17му что его балан равен 100". Вывести все числа(не цифры, а числа). Сформировать одномерный массив. Отсортировать его по убыванию, возростанию, найти максимальный и минимальный элемент. В конце вывести среднее арифметическое элементов масива.
C++ Определить номер цифры в числе Дано натуральное число. Определить номер некоторой заданной цифры в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0. Если таких цифр несколько, должен быть определен номер первой из них. Помогите, пожалуйста, никак не могу сообразить! подробнее

Показать сообщение отдельно
GAME
23 / 23 / 3
Регистрация: 31.10.2009
Сообщений: 199

Перевод из строки в число - C++

03.11.2009, 19:56. Просмотров 7330. Ответов 12
Метки (Все метки)

Снова я =) Работаю над калькулятором. С функцией ввода разобрался.
Значит есть строка ввода. рабочая. заполняет массив buf . Потом запускаеться функция scan_buf , она должна считать число ( пока делаю простой вариант, чтобы работал ^^ ) до знака действия т.е. пишешь в строке 51+9 жмякаешь ентер (в массиве buf : 51+9) запускаеться эта функция , в массив stack помещяться 51 . И теперь это 51 которое в массиве как символы нужно переделать в число i . Типа (ну напр.) double . В нете искал . Пробовал - не особо помогло :***( точней из того , что пробовал ничего не сработало. Помогите преобразовать stack в double число i . Работаю в Visual Studio 2008. *pz - указатель на знак ( мат. операцию +-\* ) описание строки ввода Строка ввода в калькуляторе (я немного усовершенствовал ).
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
 
char input_str(char (*buf), char (*opef));
void gotoxy(int xpos, int ypos);
double scan_buf(char *buf, char *oper, int p, char *stack);
 
char stack[80];
char buf[80];
char oper[]="+-*/.";
char alf[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *pz;
 
int _tmain(int argc, _TCHAR* argv[])
{
        int p;
        int z;
        double a;
        p=16;
        buf[79]='#';
        z=input_str(buf,oper,p);
        a=scan_buf(buf,oper,p,stack);
        printf("HELLO");
        printf("\n %s", buf);
        printf("\n %s", stack);
        printf("\n\n %d", a);
        getch();
        return 0;
}
 
char input_str(char (*buf), char (*oper), int p)
{
    char ch;
    int znak;
    znak=0;
    i=0;
    while(*buf!='#')
    {
    ch=getch();
    if (ch==8) 
        { 
            gotoxy(--i,0); 
            putch(NULL);
            *--buf=NULL; 
            gotoxy(i,0); 
            continue;
        }
    if (ch==13) 
        {
            break;
        }
    if (ch=='e') 
        {
            putch(ch);
            *buf++='$';
            i++;
            continue;
        }
    if(strchr(alf,ch) || (ch=='.'))
        {
            if ((strchr(alf,ch)-alf)>=p) continue;
            *buf++=ch;
            putch(ch);
            i++;
            continue;
        }
    if (strchr(oper,ch)) 
        { 
            putch(ch); 
            pz=buf;
            *buf++=ch;
            i++;
            if (ch=='+') znak=1;
            if (ch=='-') znak=2;
            if (ch=='*') znak=3;
            if (ch=='/') znak=4;
            continue;
        }
    }
    return znak;
}
 
double scan_buf(char *buf, char *oper, int p, char *stack)
{
    double i;
    i=0;
    while ((*buf!=0)&&(*buf!=*pz))
    {
        *stack++=*buf++;
    }
    //Как преобразовать ??????
    return i;
}
 
 
void gotoxy(int xpos, int ypos)
{
  COORD scrn;    
 
  HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
 
  scrn.X = xpos; scrn.Y = ypos;
 
  SetConsoleCursorPosition(hOuput,scrn);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru