0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 8
1

Из одного файла переписать в другой числа,кратные 3

14.04.2017, 08:38. Показов 1228. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан файл,содержащий случайные целые числа.Записать из него в другой файл числа кратные 3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
void main ( )
{ FILE * fp1;
FILE * fp2;
int c,n,i;
clrscr ( );cin>>n;
if ((fp1=fopen("c:\\r\\file1.txt","w+")) == NULL)
{ puts ("don't may open file \n"); return;}
for(i=0;i<n;i++)
{c=random(41)-20;
puts(c,fp1);}
fp2 = fopen("c:\\r\\file2.txt","w+");
while ((c=getc(fp1))!=EOF)
{
if((c%3)==0) putc(c,fp2);}   
fclose(fp1);fclose(fp2);
getch();
}
Почему-то в первый файл записывает символы,а не целые числа. К тому же,необходимо разделить числа пробелами. Помогите разобраться.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2017, 08:38
Ответы с готовыми решениями:

Переписать из одного файла в другой файл только четные числа
я сделал так,но у программы не получается переписать только четные числа,в чем ошибка,подскажите...

Числа из одного файла переписать в другой
Прошу написать прогу, чтобы читала из одного txt файла число и писала его в другой. Желательно...

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

Переписать числа из одного файла в другой по формуле
Создать и заполнить файл f1 числами. Переписать числа файла f1 в f2 по формуле F2n=F1n- F1m, где...

8
Заблокирован
14.04.2017, 08:54 2
Цитата Сообщение от voznesenskaya Посмотреть сообщение
puts(c,fp1);
Потому что ты пишешь строку. Причем странным способом, учитывая, что для записи в файл строк - fputs. Читай про fprintf и fwrite.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12697 / 7529 / 1760
Регистрация: 25.07.2009
Сообщений: 13,854
14.04.2017, 11:58 3
C
1
2
3
4
5
6
7
8
9
10
11
/*...*/
FILE * fin, * fout;
int n;
 
/* открыть fin на чтение, fout на запись, проверить, что открылись */
 
while ( fscanf(fin, "%d", &n) == 1 )
    if ( n % 3 == 0 )
        fprintf(fout, "%d ", n);
 
/* закрыть файлы, завершить программу */
0
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 8
14.04.2017, 17:38  [ТС] 4
С первым файлом все нормально теперь,но программа не считывает числа,поэтому второй файл остается пустой.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
void main ( )
{ FILE * fp1,*fp2;
int c,n,i;
clrscr ( );cin>>n;
if ((fp1=fopen("c:\\r\\file1.txt","w+")) == NULL)
{ puts ("don't may open file \n"); return;}
for(i=0;i<n;i++)
{c=random(41)-20;
fprintf(fp1,"%4d",c);}
fp2=fopen("c:\\r\\file2.txt","w");
while ((c=getc(fp1))!=EOF)
{
if((c%3)==0) fprintf(fp2,"%4d",c);}
fclose(fp1);fclose(fp2);
getch();
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12697 / 7529 / 1760
Регистрация: 25.07.2009
Сообщений: 13,854
14.04.2017, 17:40 5
Цитата Сообщение от voznesenskaya Посмотреть сообщение
if ((fp1=fopen("c:\\r\\file1.txt","w+")) == NULL)
C
1
if ((fp1=fopen("c:\\r\\file1.txt","r")) == NULL)
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
14.04.2017, 17:43 6
voznesenskaya, а кто сказал что после
Цитата Сообщение от voznesenskaya Посмотреть сообщение
C
1
fprintf(fp1,"%4d",c);
будте что-то записано в файл? Там же, вроде, всякая буферизация все дела..
0
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 8
14.04.2017, 19:08  [ТС] 7
И как переделать эту часть, чтоб выводило?

C
1
2
3
4
while ((c=getc(fp1))!=EOF)
if((c%3)==0)
{fscanf(fp1,"%4d",c);
fprintf(fp2,"%4d",&c);}
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
14.04.2017, 19:29 8
Цитата Сообщение от voznesenskaya Посмотреть сообщение
И как переделать эту часть, чтоб выводило?
getc() возвращает один символ, если вам нужны числа, а не цифры, нужно использовать fscanf или fgets и sscanf.

Добавлено через 1 минуту
И еще, перед циклом нужно сделать fflush(fp1).

Добавлено через 1 минуту
А еще проще закрыть и заново открыть(ну или переместить позицию в файле на начало, читайте про fseek )
1
0 / 0 / 2
Регистрация: 30.11.2016
Сообщений: 36
23.05.2017, 23:46 9
у вас есть код ? Поделитесь пожалуйста, если не жалко
0
23.05.2017, 23:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2017, 23:46
Помогаю со студенческими работами здесь

Переписать неповторяющиеся числа из одного файла в другой
Ребят, в первый раз столкнулся с типизированными файлами(да и вообще опыта мало). подскажите...

Переписать числа из одного файла в другой в заданном порядке
Всем привет! В очередной раз прошу у вас помощи, друзья: Дан файл f, компоненты которого...

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

Переписать вещественные числа из одного файла в другой в порядке возрастания
Программа которая должна переписать вещественные числа из одного файла в другой в порядке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru