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

Считавание и выполнение математического выражения из файла - C++

Восстановить пароль Регистрация
 
zago-vlad
13 / 8 / 1
Регистрация: 12.01.2010
Сообщений: 106
07.10.2011, 19:51     Считавание и выполнение математического выражения из файла #1
Всем привет!
Нужно сделать программу, которая бы считывала математическое выражение из файла input.txt, и записывала результат в output.txt

Вот что я сделал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <stdio.h>
 
int main()
{
    FILE * inputfile;
    FILE * outputfile;
    inputfile = fopen("input.txt","r");
    char inputstring[256];
    fgets(inputstring,256,inputfile);
    fclose(inputfile);
    int inputnumber;
    inputnumber = atoi(inputstring);
    outputfile = fopen("output.txt","w");
    fprintf(outputfile,"%i",inputnumber);
    fclose(outputfile);
    return 0;
}
Но эта прога только считывает выражение из файла в char, затем конвертирует его в int и записывает результат в другой файл. По идеи, если поместить выражение полностью в int, то оно должно выполниться, но atoi() обрезает всю строку после любого математического знака
Т.е., если в input.txt поставить 2+3, то в output.txt получим 2.

Как мне заставить эту прогу работать как надо, или, может быть, у Вас есть альтернативный вариант?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2011, 19:51     Считавание и выполнение математического выражения из файла
Посмотрите здесь:

C++ Программа расчета математического выражения
C++ Синтаксис математического выражения С++
Запись математического выражения C++
C++ Вычислить значение математического выражения
Запись математического выражения C++
Поиск результатов математического выражения C++
C++ Решение математического выражения на с++
Функция вычисления таблицы значений математического выражения C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
08.10.2011, 01:57     Считавание и выполнение математического выражения из файла #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
 
int main(){
   FILE* fp = fopen("input.txt", "r");
   if(! fp)
        exit(1);
   char a[10], b[10], ch;
   int  num;
   if(fscanf(fp, "%[^+-/*]%c%[0-9-]", a, &ch, b) == 3) {
        switch(ch) {
            case '+': num = atoi(a) + atoi(b); break;
            case '-': num = atoi(a) - atoi(b); break;
            case '*': num = atoi(a) * atoi(b); break;
            case '/': num = atoi(a) / atoi(b); break;
        }
        fp = freopen("output.txt", "w", fp);
        fprintf(fp, "%d", num);
   }
   fclose(fp);
   return 0;
}
Yandex
Объявления
08.10.2011, 01:57     Считавание и выполнение математического выражения из файла
Ответ Создать тему
Опции темы

Текущее время: 02:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru