Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238

Изменение формата данных && работа с файлом

18.04.2012, 18:38. Показов 1072. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вечер добрый, форумчане!

Вопрос следующий: каким образом данные, считанные из файла (они, я так понимаю, в текстовом формате) преобразовать в целочисленные/числа с плавающей точкой)?
Использую <fstream>.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2012, 18:38
Ответы с готовыми решениями:

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;)
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef A_H #define A_H #include &lt;string&gt; class A ...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp; outs, const Rational&amp;); - invalid function declaration. ...

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9&
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура...

17
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
18.04.2012, 18:41
Все зависит от того, в какие переменные считываешь, можно просто считать в int/float и все будет корректно работать.
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 19:02  [ТС]
Да, ещё забыл один вопрос: вот я "прошёлся" по файлу, как мне вернуться обратно, к его началу, не открывая его заново?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 19:26
seekp
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 19:58  [ТС]
Если возможно, поясните, пожалуйста, принцип действия: что, как да почему? Сложно воспринимать описание, предложенное по данной выше ссылке.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 20:00
Цитата Сообщение от Ieroglif Посмотреть сообщение
Сложно воспринимать описание
Там и код есть.
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 20:06  [ТС]
Код есть, но он показывает пример работы с заданной строкой. Каким образом данную функцию применить к файлу с данными?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
18.04.2012, 20:08
http://www.cplusplus.com/refer... eam/seekp/
1
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 20:11  [ТС]
Скажем, имеется файл, который благополучно открыли. Каким образом дать завязку и в дальнейшем обращаться к ней?

C++
1
my_file.seekp(0,std::ios_base::beg);
?

Добавлено через 1 минуту
MrGluck, спасибо большое!
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 20:18
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 <fstream>
#include <iostream>
#include <iterator>
 
int main()
{
    std::ifstream fin("in.txt");
    std::ofstream fout("out.txt");
    std::copy
    (
        std::istream_iterator<char>(fin),
        std::istream_iterator<char>(),
        std::ostream_iterator<char>(fout)
    );
    fin.clear();
    fin.seekg(0);
    fout.seekp(1);
    std::copy
    (
        std::istream_iterator<char>(fin),
        std::istream_iterator<char>(),
        std::ostream_iterator<char>(fout)
    );
    fout << std::endl;
    return 0;
}
out
Bash
1
2
3
4
5
6
aasdsoon@desktop:~/Src/C++/main$ cat in.txt && make && ./main && cat out.txt 
asd
g++ -c -Wall -D_GLIBCXX_USE_NANOSLEEP -O3 --std=gnu++11 main.cpp -o main.o
g++ main.o -lm  -lboost_regex -lboost_filesystem -lboost_system -lboost_timer -lboost_date_time -lboost_thread -o main
aasd
soon@desktop:~/Src/C++/main$


Добавлено через 29 секунд
Цитата Сообщение от Ieroglif Посмотреть сообщение
Каким образом дать завязку и в дальнейшем обращаться к ней?
Поясните
1
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 20:25  [ТС]
После того, как установили "метку" где-либо в файле, надо ли будет указывать, чтобы считывание/запись из файла/в файл производилось именно с ней, если подобные операции будут автоматически проходить?
Я правильно понял, что если устанавливается вторая метка, первую она затирает?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 20:29
Цитата Сообщение от Ieroglif Посмотреть сообщение
Я правильно понял, что если устанавливается вторая метка, первую она затирает?
Там в принципе только одна метка. Так что не затирает, а меняет. А так все правильно.
Цитата Сообщение от Ieroglif Посмотреть сообщение
После того, как установили "метку" где-либо в файле, надо ли будет указывать, чтобы считывание/запись из файла/в файл производилось именно с ней, если подобные операции будут автоматически проходить?
Нет, не надо.
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 20:52  [ТС]
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
int main()
{
    setlocale (LC_ALL,"RUS");
    string str;
    int n=0,str_k, var;
 
    ifstream my_file;
    my_file.open("1st.txt");
    if(!my_file) cout<<"\nОшибка открытия файла!"<<endl<<endl; else cout<<"\nФайл успешно открыт!"<<endl<<endl;
 
    while(!my_file.eof()){
        my_file>>str;
        my_file>>var;
        cout<<"str: "<<str<<endl;
        cout<<"var: "<<var<<endl;}
 
    cout<<"После seekg"<<endl;
 
    my_file.seekg(0);//установил точку
while(!my_file.eof()){
        my_file>>str;
        my_file>>var;
        cout<<"str: "<<str<<endl;
        cout<<"var: "<<var<<endl;}
    
    system("pause");
    return 0;
}
Насколько понимаю, установив
C++
1
my_file.seekg(0)
я задал "точку" на начало файла. Следовательно, у меня должно вывестись содержимое всего файла заново, выводятся же лишь последние две строки.


Содержимое 1st.txt:
Ivanov
65
m
7
Cidorova
32
w
12
Cyvorov
90
m
19
Boiko
68
m
2
Petrov
80
m
10
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 20:54
Ieroglif, еще раз мой код перечитайте.
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 21:00  [ТС]
Крутой код у Вас для меня слишком. Давайте, Вы просто "ткнёте" и объясните, что именно у меня не так и как это исправить?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 21:09
clear
1
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
18.04.2012, 21:56  [ТС]
посредством этой ф-ии мы "чистим" eof?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 21:59
Ieroglif, да.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2012, 21:59
Помогаю со студенческими работами здесь

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка?
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size; ix++) cout &lt;&lt; setw(5) &lt;&lt; ptr; // вывод элементов...

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume WHERE ' &amp; ''' &amp;...

error '80020009' &Icirc;&oslash;&egrave;&aacute;&ecirc;&agrave;. /lalala/profile.asp, line 28
При простейшем и сто раз работавшем скрипте, вылетает ошибка! след. содержания error '80020009' ...

Помогите найти драйвера для pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2
pci\ven_8086&amp;DEV_266E&amp;SUBSYS_A002145&amp;REV_05\3&amp;13C0B0C5&amp;0&amp;F2 Мультимедиа аудиоконтроллер помогите плз найти...

Мультимедиа контролер PCI\VEN_14F1&DEV_8800&SUBSYS_EA3D14F1&REV_05\4&25700A26&0&3020
Помогите пожалуйста найти драйвер на мультимедиа видеоконтролер ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

Новые блоги и статьи
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru