Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какие есть функции для считывания числа из файла? как считать число из файла 
V
    Опции темы
yurk84
Дата 6.6.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Здравствуйте! Подскажите, пожалуйста, как возможно считать число из файла. Как я понимаю, нужно для начала создать и открыть его в бинарном виде. А вот что дальше? Заранее благодарю.
PM MAIL Skype   Вверх
Ozerich
Дата 6.6.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

Репутация: 4
Всего: 5



Код

#include <fstream>

using namespace std;

int main()
{
ifstream fin("input.txt");
int a;
fin >> a;
return 0;
}

--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
ИванМ
Дата 6.6.2010, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 3
Всего: 23



yurk84, все зависит от того, в каком виде записано число. Если в виде строки текста, то читать так как написал Ozerich. Если в виде бинарных данных, то через read().
PM MAIL   Вверх
yurk84
Дата 7.6.2010, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



А как правильно использовать функцию getw() для считывания числа из файла? Разве это не выход в моём случае? Поясните, пожалуйста. Заранее спасибо.
PM MAIL Skype   Вверх
djamshud
Дата 7.6.2010, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Код

FILE *f=fopen("binfile","r");
int word=getw(f);


Цитата

DESCRIPTION
       getw()  reads  a  word (that is, an int) from stream.  It's provided for compatibility with SVr4.  We recommend you
       use fread(3) instead.


Just use fread, Luke!

Добавлено через 38 секунд
Или fstream, если для С++.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
yurk84
  Дата 10.6.2010, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



У меня следующий уточняющий вопрос: можно ли заранее занести какие-либо цифры в файл, чтобы при последующем считывании и печати в консоль они соответствовали друг другу? Почему-то функция getw() это не позволяет сделать.
PM MAIL Skype   Вверх
bsa
Дата 10.6.2010, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



yurk84, getw она читает. Используй fwrite для записи и fread для чтения.
PM   Вверх
Ozerich
Дата 10.6.2010, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

Репутация: 4
Всего: 5



Цитата

соответствовали друг другу

Это как понимать?

пишешь в файл как 
Код

ofstream fout("file.txt");
int a,b,c;
fout << a << b << c;


читаешь так
Код

ifstream fin("file.txt");
int a,b,c;
fin >> a >> b >> c

--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
yurk84
Дата 10.6.2010, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Поясню на примере то, что я имел в виду в предыдущем своём сообщении: я создал текстовый файл и забил в столбик некоторое количество цифр. Далее в программе я открыл этот файл для чтения и с помощью функции getw() попытался считать эти цифры. Но на выходе (на консоле при печати) получил совсем другие значения. В чём тут может быть дело? Заранее спасибо.
PM MAIL Skype   Вверх
bsa
Дата 11.6.2010, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



yurk84, в том, что для чтения ТЕКСТОВЫХ файлом, надо использовать текстовые функции. В частности fscanf. ИванМ тебя еще в самом начале спросил, какой файл ты читаешь. Вместо этого ты стал упирать на функцию getw, которая предназначена для чтения БИНАРНЫХ (двоичных) файлов.
PM   Вверх
yurk84
Дата 11.6.2010, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Цитата(bsa @ 11.6.2010,  10:34)
yurk84, в том, что для чтения ТЕКСТОВЫХ файлом, надо использовать текстовые функции. В частности fscanf. ИванМ тебя еще в самом начале спросил, какой файл ты читаешь. Вместо этого ты стал упирать на функцию getw, которая предназначена для чтения БИНАРНЫХ (двоичных) файлов.

Так я открывали и так и так  (и как текстовый и как бинарный), только число записанное в файле и выведенное после считывания на консоль не совпадают! Отсюда вопрос: как сделать так, чтоб совпадали?  smile Только сразу хочу напомнить, что файл заранее набран РУЧНЫМ способом (а не записан через программу)!  smile 

Это сообщение отредактировал(а) yurk84 - 11.6.2010, 12:43
PM MAIL Skype   Вверх
djamshud
Дата 11.6.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



yurk84, прочитать из файла текст, и atoi его в число.

Добавлено через 33 секунды
В общем то bsa уже все сказал, что не ясно?


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
yurk84
Дата 11.6.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



djamshud! А что такое atoi?
PM MAIL Skype   Вверх
bsa
Дата 11.6.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



yurk84, а google на что?!?
PM   Вверх
xvr
Дата 11.6.2010, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(yurk84 @  11.6.2010,  12:40 Найти цитируемый пост)
Так я открывали и так и так  (и как текстовый и как бинарный), только число записанное в файле и выведенное после считывания на консоль не совпадают! 
У меня тут Winamp какую то английскую песню играет, оно и понятно - Винда то английская. А вот поставил русскую Винду, а Winamp гад по русски петь не стал  smile Дайте мне руссификатор!  smile 

А еще я пытался отрыть .exe файл в текстовом режиме и прочесть, ну никак оттуда исходный С++ код не читается, видимо в fscanf бага  smile 


Содержимое файла от того, как его открыли, не изменится. Если там были числа в тексте, то никакие getw эти числа в бинарный вид не переведут.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.