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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2009, 22:49   #1
sawer5
Пользователь
 
Аватар для sawer5
 
Регистрация: 07.11.2009
Сообщений: 26
Печаль Сканирование чисел с файла[C]

Уважаемые программисты, помогите правильно просканировать файл(txt).
В файле fool.txt находятся
такие числа: 0.1 0.2 0.3 0.4 0.4 0.5 0.6 0.7 0.8 0.9 1 .
Нужно просканировать файл и записать в массив : red[10].
Вот что у меня вышло:
Код:
#include <iostream>//Подключаю заголовок для ввода-вывода.
#include <stdio.h>//Заголовок для потокового ввода-вывода.
using namespace std;


void mass();//Прототип функции mass.
int main()
{
	mass();//Использование функции mass.
	cin.get();
	return (0);
}
void mass()
{	
	float red[10];
	FILE *F;
	if((F = fopen("fool.txt","r+")) == NULL)
	{
		printf("Ошибка открытия файла.\n");
	}
	else
	{

			fscanf(F,"%f",red);
			cout << red[0];
		
	}
	fclose(F);
}
//------------------------------------------------------------------------
Вышло просканировать только первый элемент.

Как я только не пытался:
1)Думал вот так:
Код:
int i=0;
for(i;i<10;i++)
{
          fscanf(F,"%f ",red[i]);
          cout << red[i] << endl;
}
//Ага, щас.
2)Потом так.
Код:
float q;
int i=0;
for(i;i<10;i++)
{
          fscanf(F,"%f ",q);
          red[i] = q;
          cout << red[i] << endl;
}
//Бред.Пришлось остановится на прогрессе поменьше....
#include <sawer5>

Последний раз редактировалось Sazary; 23.12.2009 в 17:23. Причина: Обновление № 1
sawer5 вне форума Ответить с цитированием
Старый 19.12.2009, 01:44   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Совет - пользуйся потоками - неполный код вот
Код:
#include <fstream> //подключи обязательно
double mas[10];

fstream file("fool.txt");
file >> mas [i]; //в цикле проделай ввод!
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 19.12.2009, 01:46   #3
Crasty
Пользователь
 
Регистрация: 01.11.2008
Сообщений: 35
По умолчанию

Надо было написать
так: fscanf(F,"%f ",&red[i]);

А первый элемент у тебя считывался потому что имя массива это есть его начальный адрес, а если хочешь получить адрес его элемента надо
добавить &
Crasty вне форума Ответить с цитированием
Старый 19.12.2009, 12:10   #4
sawer5
Пользователь
 
Аватар для sawer5
 
Регистрация: 07.11.2009
Сообщений: 26
Радость

Цитата:
Сообщение от RoS Посмотреть сообщение
Совет - пользуйся потоками
Код:
Спасибо, я знаю как это делается.Просто задача у меня была именно в использовании функций -С для ввода-вывода.
#include <sawer5>
sawer5 вне форума Ответить с цитированием
Старый 19.12.2009, 12:17   #5
sawer5
Пользователь
 
Аватар для sawer5
 
Регистрация: 07.11.2009
Сообщений: 26
По умолчанию

Всем спасибо.Вы мне помогли.Не то слово!
#include <sawer5>
sawer5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файла и создание графика на основе чисел из файла Simon..14 Общие вопросы C/C++ 8 09.06.2009 10:18
C#, чтение чисел из файла XeN0N Общие вопросы .NET 3 01.03.2009 17:08
Сканирование директорий. Serious Общие вопросы Delphi 2 14.02.2009 15:17