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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2012, 03:18   #1
Franch
Новичок
Джуниор
 
Регистрация: 17.09.2012
Сообщений: 2
По умолчанию Работа с файлом на С++

Осталась последняя лаба и тут я завис. В методичке, прикрепленной к заданию на эту тему вообще ничего нет. Покопался в инете, вроде частично разобрался, но все равно не получается.
Задание : Нужно считать из файла записанные данные и заменить нулем каждое значение файла, кратное минимальному числу.

Код:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <string.h>
 
int main ()
{
    FILE *fin,*fout;
    int n,min=999;
	    
    fin=fopen("D:\\read.txt","r+");
    fout=fopen("D:\\write.txt","w+");

    if(fin==NULL&&fout==NULL)
    {
        printf("File can not found");
        exit(0);
    }
   
	while(!feof(fin))
    {
        fscanf(fin,"%d",&n);
		if (n<min) min=n;
		printf("%d ",n);
    }

	printf("\n\nMin=%d\n\n",min);

	while(!feof(fin))
    {
        fscanf(fin,"%d",&n);
		if (n%min==0) n=0;
		fprintf(fout,"%d ",n);
        printf("%d ",n);
    }

    fclose(fin);
    fclose(fout);
    return 0;
}
В итоге программа успешно доходит до момента вывода на экран значения минимума и все. В файл out тоже ничего не записывается. Заранее спасибо за помощь.
Franch вне форума Ответить с цитированием
Старый 17.09.2012, 03:46   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

К моменту выполнения второго while, feof (fin) будет возвращать истину, то есть тело второго цикла while никогда не выполнится. Чтобы работало в соответствии с Вашими ожиданиями, нужно перед вторым while добавить вызов ф-ции rewind, которая возвращает указатель на начало файла.
Код:
rewind (fin);
netrino вне форума Ответить с цитированием
Старый 17.09.2012, 03:53   #3
Franch
Новичок
Джуниор
 
Регистрация: 17.09.2012
Сообщений: 2
По умолчанию

Большое спасибо, все заработало.
Franch вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлом victor5133 PHP 1 23.04.2012 23:51
Работа с файлом! Kami-sama Visual C++ 0 07.05.2011 20:48
работа с файлом DinamoBrynsk Помощь студентам 4 25.02.2011 19:33
Работа с файлом SVadiks Помощь студентам 3 08.12.2009 17:46
работа с файлом scudo Общие вопросы Delphi 4 12.11.2009 22:52