1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
|
|
1 | |
Считывание данных из файла07.08.2008, 18:39. Показов 4299. Ответов 11
Метки нет (Все метки)
у меня такая проблема: считываю данные из файла открытого fopen для чтения, символы записываются в символьный массив, как только считывание доходит до символа 'стрелочка вправо', если я не ошибаюсь 26 символ таблицы ASCII, дальнейшее считывание прекращается подскажите пожалуйста как это можно обойти, если этот символ не будет считан в массив это ничего страшного! заранее спасибо!!!
0
|
07.08.2008, 18:39 | |
Ответы с готовыми решениями:
11
Запрос данных из файла. Проблема в открывании файла и считывание из него данных считывание данных из файла в C++ Считывание данных из файла Считывание данных с файла |
2255 / 770 / 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
|
296 / 56 / 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
|
2255 / 770 / 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
|
2255 / 770 / 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
|
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
07.08.2008, 20:34 | 10 |
....
Эти строчки не сочитаются. "Если" - значит,вы не делаете НЕ так. Чтобы проверить,в каком случае программа прочитает символ 26,мне пришлось написать целых 18 строчек кода.Хотя хватило бы 8. Рассмотрел три варианта считывания. Почему бы вам не сделать то же самое? особенно если это ваша работа?
0
|
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
|
|
07.08.2008, 21:03 [ТС] | 11 |
так я же так и делаю относилось к эксперементированию!!! а на счет почему бы самому не подумать не так силен я в си!!! диплом защитил, программу написал, а в некоторых вопросах олень полный!!! вот потому за помощью и обращаюсь!!! плюс так получилось что переехал и книг вобще неосталось!!! ниодной!!! а с электронными сидеть очень непривычно!!! плюс чтоб в них ориентирвоаться хорошо их нужно сначала прочитать!!! а на это времени нет!!!
0
|
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
07.08.2008, 21:18 | 12 |
то,что не силен - дело поправимое)
Мой тебе совет - разбирайся,пиши,думай - по возможности сам.Тогда будешь силен Но если что - форум тут Тему закрываю, у меня работает,вопрос считаю решенным.
0
|
07.08.2008, 21:18 | |
07.08.2008, 21:18 | |
Помогаю со студенческими работами здесь
12
Считывание данных из файла Считывание данных из файла Считывание данных из файла Считывание данных из файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |