Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
KиT
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 5
#1

Считывание с файла - C++

17.11.2011, 10:49. Просмотров 1795. Ответов 9
Метки нет (Все метки)

Нужно считать с текстового файла числа не зная их количество, вроде не сложно, но как не пробую считывает бред какой то. Кто нить помогите, надо срочно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 10:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание с файла (C++):

Заменить считывание с клавиатуры на считывание из файла - C++
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не понимаю как и что делать. Почитал в интернете, попробовал, не...

Считывание файла в массив и запись нового файла - C++
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

Считывание с файла ! - C++
Всем доброе врямя суток ! Помогите пожалуйста мне надо чтобы прога считывала из файла не до пробела а запихивала в символьный массив прям...

Считывание из файла - C++
Почему при считывании строк из файла циклом вида while (!feof(f)) { fgets(line, MAX, f); printf("%s\n", line); } если...

считывание с файла - C++
файл содержит data.txt: 200 185 170 160 76 54.9 39 27 7.5 10.7 12.9 15.9 6.5 7.9 12 12 ...

Считывание из файла - C++
Нужна помощь, уже не знаю, что делать. Проблема: Имеется функция для добавления хешированного логина и пароля в двоичный файл. ...

9
Jupiter
Каратель
Эксперт С++
6558 / 3979 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.11.2011, 11:00 #2
Цитата Сообщение от KиT Посмотреть сообщение
но как не пробую
показывайте как пробуете
1
KиT
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 5
17.11.2011, 11:03  [ТС] #3
пробовал использовать функцию feof
FILE *f;
. . .
while (!feof(f))
{
int c = fgetc(f);
. . .
}
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
17.11.2011, 11:11 #4
Цитата Сообщение от KиT Посмотреть сообщение
пробовал использовать функцию feof
C++
1
    int c = fgetc(f);
Функция fgetc считывает один символ (char). Для того, чтобы считывать число, нужно прочитать строку целиком(fgets) и далее ее распарсить (обработать). То есть все что до пробела, будет считаться числом. До следующего пробела - следующее число, и так далее.
Замечание: Может оказаться так, что количество чисел, находящихся в файле, будет превышать буфер для хранения строки, надо обязательно учесть этот момент.
1
KиT
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 5
17.11.2011, 11:14  [ТС] #5
а можно по подробнее про "распарсировать" ? чем это делается ?
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
17.11.2011, 11:23 #6
Цитата Сообщение от KиT Посмотреть сообщение
а можно по подробнее про "распарсировать" ? чем это делается ?
Пример навскидку, самый грубый (прошу простить меня за это). Вот у нас получилась строка такого вида "12 321 287". Копируем строку до пробела, исключая пробел, в массив, не забыв при этом сохранить количество скопированных символов n (по факту количество цифр в числе). После этого нужно из строки "12" сделать число 12. Заводим переменную целочисленного типа, которая равна первый символ * 10^(n-1) + второй символ * 10^(n-2). Что получится: 1*10 + 2 * 1 = 10 + 2 = 12.
Рассмотрим следующий случай: 3*10^(n-1) + 2*10^(n-2) + 1*10^(n-3) = 3*100 + 2*10 + 1 = 321.
1
KиT
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 5
17.11.2011, 11:40  [ТС] #7
спасибо за метод, а есть способ просто узнать количество элементов, не считывая строку полностью ?
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
17.11.2011, 12:04 #8
Цитата Сообщение от KиT Посмотреть сообщение
спасибо за метод, а есть способ просто узнать количество элементов, не считывая строку полностью ?
Скорее всего нет. По крайней мере, я такой придумать не могу. Кстати, Вы можете заметить, что тот способ что предложил я, не считывает строку полностью в общем случае. Он считывает не больше чем размер буфера.
1
KиT
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 5
17.11.2011, 12:08  [ТС] #9
еще раз спасибо, попробую реализовать.
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.11.2011, 12:22 #10
C
1
2
    while (fscanf(ifp, "%d", &a[i]) == 1)
        i++;
1
17.11.2011, 12:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 12:22
Привет! Вот еще темы с ответами:

Считывание из файла - C++
есть файл с настройками prog.conf вида: date = 01.02.2010 time = 15:05:45 step = 0.5 ... есть переменные: day, month, year,...

Считывание с файла - C++
Задание 1: Считать с файла и найти количество слов из 4 и менее букв. (test.txt по умолчанию в папке с программой) Вопрос: Почему он...

Считывание из файла - C++
В общем-то задача таков- считать из файла ВСЁ, ЧТО ТАМ ЕСТЬ, далее это зашифровать и сохранить. Для шифрования выбрал base64, проблем...

Считывание из файла - C++
Ребят, помогите, пожалуйста, новичку разобраться=) Есть файл, в котором расположена информация примерно такого содержания 1946 12 30 0...


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

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

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