Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
1

Считывание данных из файла

07.08.2008, 18:39. Показов 3989. Ответов 11
Метки нет (Все метки)

у меня такая проблема: считываю данные из файла открытого fopen для чтения, символы записываются в символьный массив, как только считывание доходит до символа 'стрелочка вправо', если я не ошибаюсь 26 символ таблицы ASCII, дальнейшее считывание прекращается подскажите пожалуйста как это можно обойти, если этот символ не будет считан в массив это ничего страшного! заранее спасибо!!!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2008, 18:39
Ответы с готовыми решениями:

Запрос данных из файла. Проблема в открывании файла и считывание из него данных
Не понимаю что не так, программа не хочет открывать файл... Пробовал и перемещать его, и...

считывание данных из файла в C++
В файле находиться следующяя информация: Name AIXTRON HANKORE_ENVM_TECH BOIRON...

Считывание данных из файла
Помогите дописать програмку, которая считывает строки из 2 файлов, в которых записаны числа. Строку...

Считывание данных с файла
Здравствуйте, помогите пожалуйста, программа не может прочитать данные из файла и я не знаю почему,...

11
Эксперт С++
2250 / 765 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 18:52 2
Попробуйте открывать файл не как текстовый,а как двоичный.
Код
 fopen("filename","rb" ) ;
0
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
07.08.2008, 19:17  [ТС] 3
он тогда его откроет как нолики и единички???
0
295 / 55 / 5
Регистрация: 22.05.2008
Сообщений: 788
07.08.2008, 19:18 4
или
Код
 fstream f(filename, ios::binary | ios::in | ios::out);
0
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
07.08.2008, 19:21  [ТС] 5
так я сначала делал, в смысле таким способом файл открывал, но чет через fopen мне показалось проще работать!!!
в переменную посимвольно все вбивается через цикл, а не потоком!!! потоком он как-то криво к новым строкам относился!!!
0
Эксперт С++
2250 / 765 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 19:33 6
Я вижу,вы не очень понимаете,что творится. Попробую объяснить.

он не начнет разговаривать с вами "ноликами" и "единичками".
Вы сможете считывать информацию(как минимум по байту за раз),
и интерпретировать ее как хотите. В случае с текстовыми файлами,
полученная информация частично интерпретируется за вас. Поэтому ввод может закончиться раньше,чем нужно.

Запомните : минимальная адресуемая ячейка памяти - байт. Если вас интересует каждый бит - есть побитовые операции,можете прочитать про них статью(гугл + яндекс). Но сначала вы получите байт,который будете анализировать. Так есть. Сами подумайте,чтобы прочитать файл по одному биту,функции ввода придется 8 раз считывать один байт,поскольку меньше нельзя. Да еще придется,кроме хранения положение в файле, запоминать номер считываемого бита. Себя такой подход не оправдывает.

Надеюсь,помог вам приблизиться к пониманию того,что происходит.

Добавлено через 7 минут
Добавлю еще,для полноты картины.
Тип char фактически представляет собой байт. Заодно он может интерпретироваться как символ функциями ввода-вывода. Но байт есть байт,и вы можете делать с ним что хотите. Узнать каждый бит,складывать и вычитать..
Если вы откываете файл как текстовый,с параметром "r" или "rt", функции
ввода интерпретируют этот байт как символ. Если вы используете
параметр "rb", в этот байт запишется байт,записанный в файле. Без всяких посредников.
0
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
07.08.2008, 19:35  [ТС] 7
я понимаю!!! просто думал вдруг он сразу преобразовывать будет!!! вобщем не суть!!! если поставить rb то он не должен прерывать ввод в переменную!?
0
Эксперт С++
2250 / 765 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 19:42 8
А ты проверь. Эксперементировать - это приятно и полезно.Не буду лишать тебя этого удовольствия
0
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
07.08.2008, 20:18  [ТС] 9
так я же так и делаю!!! просто это все на работе!!! там нета нет!!! а домой коды брать нельзя!!! потому там маюсь а тут спрашиваю!!! )) просто все, программу сделал!!! выполняет то что от нее требуется, но попался файл с таким символом!!! в итоге вместо выходных результатов получилась фига с маслом!!!
0
Эксперт С++
2250 / 765 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 20:34 10
Цитата Сообщение от smertnik Посмотреть сообщение
если поставить rb
....
Цитата Сообщение от smertnik Посмотреть сообщение
так я же так и делаю
Эти строчки не сочитаются. "Если" - значит,вы не делаете НЕ так.


Цитата Сообщение от smertnik Посмотреть сообщение
это все на работе!!! там нета нет!!! а домой коды брать нельзя!!!
Чтобы проверить,в каком случае программа прочитает символ 26,мне пришлось написать целых 18 строчек кода.Хотя хватило бы 8. Рассмотрел три варианта считывания. Почему бы вам не сделать то же самое? особенно если это ваша работа?
0
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
07.08.2008, 21:03  [ТС] 11
так я же так и делаю относилось к эксперементированию!!! а на счет почему бы самому не подумать не так силен я в си!!! диплом защитил, программу написал, а в некоторых вопросах олень полный!!! вот потому за помощью и обращаюсь!!! плюс так получилось что переехал и книг вобще неосталось!!! ниодной!!! а с электронными сидеть очень непривычно!!! плюс чтоб в них ориентирвоаться хорошо их нужно сначала прочитать!!! а на это времени нет!!!
0
Эксперт С++
2250 / 765 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 21:18 12
то,что не силен - дело поправимое)
Мой тебе совет - разбирайся,пиши,думай - по возможности сам.Тогда будешь силен Но если что - форум тут Тему закрываю, у меня работает,вопрос считаю решенным.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2008, 21:18

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Считывание данных из файла
Всем привет, возник вопрос. Нужно считывать из .txt файла координаты точек в массив, размерность...

Считывание данных из файла
почему не првильно работает считывание из файла? #include <iostream.h> #include <conio.h>...

Считывание данных из файла
Нужно считать из txt-файла все значение "Angle", а затем присвоить им значения переменных "a" и "b"...

Считывание данных из файла
char y; ifstream fin; fin.open("maps1.txt"); fin >> y; fin.close(); cout << y; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.