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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

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

Исходное задание требует получать значения из файла.
В первом приближении сотворил такую вот конструкцию:
Цитата:
#include <stdio.h>
main ()
{
FILE * data;
data = fopen("datafile.txt","rt");
int n;
while( !feof(data) )
{
fscanf( data, "%d", &n );
printf("%d \n", n);
}
fclose(data);
}
Этот код считывает из файла все числовые строки, используя как буфер переменную n.
Как реализовать считывание чисел из строки и присваивание значений разным переменным. что б после можно было использовать эти значения?
Что-то типо:
*строка*число_1*строка*
*строка*число_2*строка*=> p=число_1; n=число_2
Ixituni вне форума Ответить с цитированием
Старый 24.07.2013, 10:05   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

На сколькоя понимаю....
Считывайте значения из потока:
Код:
while((ch=getc(data))!=EOF)
А дальше со значением в переменной ch делайте что ходите... присваивайте любым другим переменным..
Зачем сложности, не усложняяяй..
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 24.07.2013, 10:36   #3
Ixituni
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 20
По умолчанию

Эммм, мне нужно взять значения переменных из файла
построчно, допустим в файле:
45
58
12
И после открытия файла, работы с ним переменные получают значения
n=45; p=58; k=12
С помощью Вашего метода нельзя реализовать это
Ixituni вне форума Ответить с цитированием
Старый 24.07.2013, 10:44   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Эммм, подругому вы не считаете. Каждый символ в файле имеет размер - 1 байт.

Построчно считывайте в значения в массив символов, а затем, переводите в числа.
Igor95 вне форума Ответить с цитированием
Старый 24.07.2013, 10:54   #5
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Код:
fscanf(file, "%d %d %d", &n, &p, &k);
Или я что-то не понял?
Somebody вне форума Ответить с цитированием
Старый 24.07.2013, 11:01   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Ixituni напишите конкретнее. Какое задание? Почему именно построчно, это обязательное условие????
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 24.07.2013, 11:25   #7
Ixituni
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 20
По умолчанию

Bugrimov, в файле в столбце чисел, одна строка- одна переменная
Идея взять из файла значения для переменных, которые дальше будут использоватся
Ixituni вне форума Ответить с цитированием
Старый 25.07.2013, 19:41   #8
Ixituni
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 20
По умолчанию

Реализовал я построчное чтение файла
Цитата:
main ()
{
FILE*input;
input=fopen("datafile.txt", "r");

char n=0;
char k=0;
char p=0;

fscanf(input, "%s %s %s", &n, &k, &p);
printf("%s %s %s \n", &n, &k, &p);
fclose(input);
}
Но переменным присваиваются совсем левые значения, как это убрать?
Ixituni вне форума Ответить с цитированием
Старый 25.07.2013, 20:13   #9
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Почему %s-то для char'ов?
Somebody вне форума Ответить с цитированием
Старый 29.07.2013, 11:06   #10
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Почему %s-то для char'ов?
Ну не знает человек, что строка это в первую очередь уже адрес.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами AK55 Помощь студентам 0 11.04.2013 19:02
работа с файлами rinoolik Паскаль, Turbo Pascal, PascalABC.NET 3 12.12.2012 09:53
Работа с файлами Gen_r_questions PHP 5 29.04.2011 09:01
Работа с файлами prem1era Паскаль, Turbo Pascal, PascalABC.NET 0 06.06.2010 19:28