Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2013, 18:07   #1
Ixituni
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 20
Восклицание C: из файла в переменную

Задание звучит так:
В ini-файле в столбец числа. Нужно из файла задать переменную типа int или float, число=переменная.
Как реализовать построчное считывание файла с преобразованием типов? Или есть другой способ, камрады?
Сделал вот так, только переменные дальше нельзя использовать в расчётах, не могу изменить тип:
Цитата:
#include <stdio.h>

main ()
{
FILE * data;
data = fopen("New_File.ini","r");
int n, k, p, y;
fscanf(data, "%s %s %s", &n, &k, &p);
y=p*p;
printf("%s \n%s \n%s \n%s \n", &n, &k, &p, &y);
fclose(data);
}
По ТЗ нужны переменные из файла числовых типов, у меня не получается(
Ixituni вне форума Ответить с цитированием
Старый 25.07.2013, 22:19   #2
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

fscanf(data, "%d %d %d", &n, &k, &p); - во -первых
Во-вторых так у тебя числа прочитаются если они в строку 1 2 3, а не в столбик.
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 25.07.2013, 22:19   #3
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Для начала по поводу вашего кода: вы зачем-то передаёте fprintf адреса переменных. Не надо так, надо так
Код:
printf("%s \n%s \n%s \n%s \n", n, k, p, y);
Ну а для численных переменных просто укажите нужный формат, т.е. вместо %s для float - %f, для int - %d. делать это надо как в printf , так и в fscanf

Цитата:
Во-вторых так у тебя числа прочитаются если они в строку 1 2 3, а не в столбик.
ничего подобного, fscanf будет считывать число пока не встретит пробел, или знак перехода на новую строку.
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.

Последний раз редактировалось Че Гевара; 25.07.2013 в 22:24.
Че Гевара вне форума Ответить с цитированием
Старый 26.07.2013, 08:24   #4
Ixituni
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 20
По умолчанию

Спасибо за помощь, проблему пофиксил.
Ixituni вне форума Ответить с цитированием
Старый 26.07.2013, 09:20   #5
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Цитата:
ничего подобного, fscanf будет считывать число пока не встретит пробел, или знак перехода на новую строку.
а когда числа в столбик там переходов на новую строку нет полагаете?
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в переменную из ini файла Auron Общие вопросы Delphi 2 24.07.2012 12:30
взять переменную из файла Кольша PHP 11 17.01.2012 17:03
считать из файла в word32 переменную Шаина Общие вопросы C/C++ 2 17.06.2010 23:58
Запись из файла в переменную Sekt Общие вопросы C/C++ 1 20.10.2009 13:02
Подстановка значения в переменную из текстового файла. Niodar Общие вопросы Delphi 2 22.03.2009 19:34