Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 2
Регистрация: 08.03.2016
Сообщений: 83

Захватить исходные данные из файла

13.01.2017, 08:03. Показов 2082. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро!
Собственно вопрос: есть некое выражение, ну пускай упростим до (a+b) / b^2 и возьмем значения для теста
a = 1000; b = 0.0001 как их собственно вытянуть именно с текстового файла, а не "голым" подключением
C++
1
#include "file.txt"
? т.к. когда я так сделал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
 
#include "file.txt"
using namespace std;
 
 
float rez(int a, float b){
    int rez; //тут так же играл с типами, но так и оставалось стабильно a+b = 1000
    
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << (a+b);
}
 
int main(){
    
 rez(a,b);
    
}
txt (в нем я тоже уже поиграл с типами, но как-то, увы, безуспешно)
C
1
2
int a = 1000;
double b = 0.0001;
1.) не радовало глаз =)
2.) считывалось и выводилось в программе правильно (вначале установил вывод что б проверить правильно ли считало) но вот после a+b выдавало 1000 как бы не играл с типом
Собственно, хотел бы что б как-нибудь помогли с "вытаскиванием" из файла т.к. как-то не особо смог приятное С/++ -шное объяснение глазу найти в гуголе
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2017, 08:03
Ответы с готовыми решениями:

Как получить исходные данные из 10-й строки файла?
При написании консольного приложения на visual-studio, возникла проблема, мне надо получить исходные данные из 10 строки файла text1.txt,...

Написать выражение, исходные данные которого вводятся из файла
Написать выражение. Исходные данные вводятся из файла. Вычисление оформить в виде функции, в которую передается имя файла с исходными...

Изменить программу так, чтобы исходные данные вводились не из файла, а с клавиатуры
Нужно сделать чтоб исходные данные задавались не с файла, а пользователь вводил с клавиатуры!! Может кто может помочь!!!??? #include...

11
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
13.01.2017, 08:59
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
float rez(){
    int a;
    float b;
    ifstream myfile ("file.txt");
    if (myfile.is_open())
    {
        myfile >> a >> b;
        cout << "a = " << a << endl;
        cout << "b = " << b << endl;
        cout << "a + b = " <<a+b<< endl;
    }
    else cout << "Unable to open file"<<endl; 
    return a+b;
}
 
int main()
{
    cout <<"rez = "<< rez()<<endl;   
    system("pause");
    return 0;
}
1
0 / 0 / 2
Регистрация: 08.03.2016
Сообщений: 83
13.01.2017, 09:06  [ТС]
Цитата Сообщение от afront Посмотреть сообщение
myfile >> a >> b;
Cпасибо. Правда считывает, но что-то не то, увы =) Выдает a=0 , а b= улетает в 5, .... - e но хотяб сдвинулся я =)
0
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
13.01.2017, 09:14
считывает то что записано в файле
101 0.001
Миниатюры
Захватить исходные данные из файла  
1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
13.01.2017, 09:52
Цитата Сообщение от NS-17_R-18 Посмотреть сообщение
но вот после a+b выдавало 1000
Дело в том, что по-умолчанию вещественные числа выводятся не один-в-один, а с некоторым округлением.
Чтобы его отключить можно использовать манипулятор fixed:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std;
 
int main()
{
    int a = 1000;
    double b = 0.0001;
    cout << a+b << endl;
    cout << fixed << a+b << endl;
}
Результат работы программы:
1000
1000.000100
1
0 / 0 / 2
Регистрация: 08.03.2016
Сообщений: 83
13.01.2017, 10:04  [ТС]
Цитата Сообщение от likehood Посмотреть сообщение
Результат работы программы:
Занятно, в dev C++ выдало
a 1000
b 0.0001
a+b не fixed 1000
a+b fixed 1000.000122
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
13.01.2017, 10:10
NS-17_R-18, именно этой программы, где b типа double?

Добавлено через 2 минуты
Цитата Сообщение от NS-17_R-18 Посмотреть сообщение
dev C++
Не знаю какой там стоит компилятор.
Я запускал в Code::Blocks, компилятор mingw.
0
0 / 0 / 2
Регистрация: 08.03.2016
Сообщений: 83
13.01.2017, 10:14  [ТС]
Цитата Сообщение от likehood Посмотреть сообщение
, именно этой программы, где b типа double?
Да. Переписал просто double на float и обратно и не поверите! не fixed a+b = искомому, а fixed - врет с 000122 =)))
upd теперь опять перестало, что творица то!))
fixed a+b = верному, а fixed и не fixed rez() врет
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
13.01.2017, 10:22
Поменял в своём коде тип b с double на float, и получил такой же искажённый результат: 1000.000122. Что не удивительно, поскольку float имеет весьма ограниченную точность. Вообще, использовать float нужно крайне осторожно, или вообще не использовать, отдавая предпочтение типу double, который является основным вещественным типом.
1
0 / 0 / 2
Регистрация: 08.03.2016
Сообщений: 83
13.01.2017, 10:24  [ТС]
Цитата Сообщение от likehood Посмотреть сообщение
типом.
Фух, пофиксил! Почему-то вместо double rez() стало float и сидел репу чесал "а что это у меня тут не так выводит return a+b;" =))) Спасибо! Еще вот такой вопросик: а вот если я захочу себе жизнь усложнить и в текстовый файл поставить мусор, допустим:
1000 sad ; 52234 3432 0.0001 как с таким быть тогда ? Ибо myfile >> скушает до пробела и тогда b = 0 будет
Можно как-то вбить файл в духе a = 1000; b = 0.0001 чтоб при чтении именно это было решающим
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
13.01.2017, 10:35
Замечу, что после использования манипулятора fixed все последующие вещественные числа будут выводится в этом же формате. Если нужно его отключить, вернувшись к формату по-умолчанию, можно использовать следующий код:
C++
1
std::cout.unsetf(std::ios::fixed);
Добавлено через 9 минут
Цитата Сообщение от NS-17_R-18 Посмотреть сообщение
Можно как-то вбить файл в духе a = 1000; b = 0.0001
Если я правильно понял, тебе нужно что-то вроде ini-файлов. В таком случае можно воспользоваться одной из существующих библиотек для работы с ini файлами.
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
13.01.2017, 11:52
Цитата Сообщение от likehood Посмотреть сообщение
Не знаю какой там стоит компилятор.
Там то же mingw (по умолчанию). Если брать стандартную версию Dev, то очень древний.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2017, 11:52
Помогаю со студенческими работами здесь

Вычислить объем цилиндра. Исходные данные считываются программой из файла. Результат сохранить в файл
Помогите, пожалуйста, с кодом программы на си или си++, заранее большое спасибо! P.S. Нашла только с вводом исходных данных, но...

Как ввести исходные данные из текстового файла
Задача такая: Есть переменные T(1), T(2), T(3), T(4), T(5), T(6), T(7). Значения этих переменных находятся в текстовом файле.Вопрос: как...

Из внешнего файла, содержащего исходные данные, удалить записи
Задача: Из внешнего файла, содержащего исходные данные, удалить записи, соответствующие абитуриентам, получившим все оценки 5. Распечатать...

Из внешнего файла, содержащего исходные данные, переписать в другой
Из внешнего файла, содержащего исходные данные, переписать в другой список абитуриентов, имеющих в аттестате две оценки 4, а остальные 5....

Составить линейный алгоритм и программу в которой вводятся исходные данные, вычисляются исходные выражения и выводятся на экран результаты вычислений
Приветствую! Вот попалась задачка - уже второй час ломаю голову. Надо составить линейный алгоритм и программу в которой вводятся исходные...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru