23.02.2018, 01:53 [+3 UTC]
в нашей команде: 2 560 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.44 (14.02.2018)

Общие новости:
02.01.2018, 09:46

Форум:
11.02.2018, 23:11

Последний вопрос:
22.02.2018, 17:35

Последний ответ:
21.02.2018, 16:44

Последняя рассылка:
22.02.2018, 23:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
10.11.2009, 12:23 »
MrSpencer
Блеск! Спасибо огромное! [вопрос № 174105, ответ № 256338]
26.12.2010, 15:27 »
Botsman
Спасибо! Как всегда, качественно, и, как всегда, оперативно! [вопрос № 181617, ответ № 265093]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 400
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 350
CradleA
Статус: Профессионал
Рейтинг: 185

Перейти к консультации №:
 

Консультация онлайн # 192031
Раздел: • С / С++
Автор вопроса: PavelKotik (Посетитель)
Отправлена: 07.12.2017, 13:25
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе:Помогите пожалуйста довести прогу до ума,а то она записывает не все элементы массива, а мне нужно программу, которая исходный числовой массив данных (если он есть) считывает из текстового файла f1, а выходную информацию записывает в текстовый файл f2
Вот код:

Приложение:

Состояние: Консультация закрыта

Ответ # 275833 от mklokov (6-й класс)

Здравствуйте, PavelKotik!
В Вашем коде:

#include<math.h>
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<fstream.h>
#include <cstdlib>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[]){
int i;
int N=0;
int a[10];
FILE *f1=fopen("m1.txt", "r");
FILE *f2=fopen("m2.txt", "w");
fscanf(f1,"%d",&N);
   for(i=0;i<N;i++)
      {
       fscanf(f1,"%d",&a[i]);
          fclose(f1); // Закрытие файла на первом же проходе цикла for
      
    }
for(i=0;i<N;i++)
      {
       fprintf(f2,"%d",a[i]);
               fclose(f2); // Закрытие файла на первом же проходе цикла for
    }
    getch();
    }

файлы f1 и f2 закрываются (fclose) сразу после первой операции ввода (fscanf), или вывода (fprintf), т. к. они находятся в теле цикла for.
Так что ко второму проходу цикла программа теряет возможность чтения и записи соответственно.
Возможные изменения:
#include<math.h>
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<fstream.h>
#include <cstdlib>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[]){
int i;
int N=0;
int a[10];
FILE *f1=fopen("m1.txt", "r");
FILE *f2=fopen("m2.txt", "w");
fscanf(f1,"%d",&N);
   for(i=0;i<N;i++)
      {
       fscanf(f1,"%d",&a[i]);
    }
    fclose(f1); // Закрытие файла после чтения всех элементов массива
for(i=0;i<N;i++)
      {
       fprintf(f2,"%d",a[i]);
    }
    fclose(f2); // Закрытие файла после вывода всех элементов массива
    getch();
    }


Консультировал: mklokov (6-й класс)
Дата отправки: 14.12.2017, 13:46

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 192031
mklokov
6-й класс

ID: 400828

# 1

= общий = | 07.12.2017, 13:31 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
PavelKotik:

Здравствуйте.
Вынесите оба fclose из тела цикла.

Андрей Кузнецов aka Dr_Andrew
Старший модератор

ID: 17042

# 2

= общий = | 12.12.2017, 12:29 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
mklokov:

Оформите ответ?

=====
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13739 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.44 от 14.02.2018