Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
#1

Файлы - C++

13.12.2009, 21:55. Просмотров 749. Ответов 14
Метки нет (Все метки)

1. Задано 3 файла, состоящие из 7 чисел каждый.
Сформировать новый файл из чисел, принадлежащим одновременно всем трем файлам...помогите,пожалуйста, тему файлы не понимаю....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2009, 21:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файлы (C++):

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними - C++
Всем добрый вечер!) Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как появился вопрос. Почему при объявлении...

Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы? - C++
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про графику, не смог добавить файлы .h и .cpp, скачав их с одной из...

Зачем нужно добавлять файлы в файлы исходного кода - C++
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как вызвать из main.cpp другой файл?

Заголовочные файлы и файлы cpp - C++
Со временем сложилось представление что при написании программ стоит разделять МЕТА данные и данные, но для лучшего понимания своих...

Раздельная компиляция: что помещать в заголовочные файлы, а что в файлы реализации (исходники)? - C++
Здравствуйте, я учусь пользоваться Visual Studio.Пишу программу, в которой создаются и разрушаются объекты, определенного пользователем...

нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) - C++
вот задание для программы: 6. Задан текстовый файл input.txt. Требуется определить строки этого файла, содержащие максимальную по длине...

14
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
13.12.2009, 22:22 #2
1) Считать из файла все числа в 3 массива.
2) Найти нужные числа в четвертый массив.
3) Записать массив в файл.
0
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
13.12.2009, 22:43  [ТС] #3
Теоретически я алгоритм понимаю, а не работает программа
0
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
13.12.2009, 22:57 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <windows.h>
#include <fstream.h>
#include <list.h>
class files
{
list<int> file1;
list<int> file2;
list<int> file3;
int        buf;
public:
void open();
void save();
};
 
void files::save()
{
ofstream ofs(Имя сохраняемого файла,ios::out|ios::binary)
for(list<int>::iterator it=file1.begin();it!=file1.end();++it ) { ofs<<(*it); ofs<<" "; }
for(list<int>::iterator it=file2.begin();it!=file2.end();++it ) { ofs<<(*it); ofs<<" "; }
for(list<int>::iterator it=file3.begin();it!=file3.end();++it ) { ofs<<(*it); ofs<<" "; }
ofs.close();
}
 
void files::open()
{
ifstream ifs1(Имя 1 файла,ios::in|ios::binary)
if(ifs)
{
for(int i=0;i<7;i++) { ifs>>buf; file1.push_back(buf); }
}
ifstream ifs2(Имя 2 файла,ios::in|ios::binary)
if(ifs)
{
for(int i=0;i<7;i++) { ifs>>buf; file2.push_back(buf); }
}
ifstream ifs3(Имя 3 файла,ios::in|ios::binary)
if(ifs)
{
for(int i=0;i<7;i++) { ifs>>buf; file3.push_back(buf); }
}
ifs1.close();
ifs2.close();
ifs3.close();
}
Я примерно так вижу эту задачу )))
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
13.12.2009, 23:09 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
 
#define IFNAME1 "1.txt"
#define IFNAME2 "2.txt"
#define IFNAME3 "3.txt"
#define OFNAME "out.txt"
#define N 7
 
void fill_array(FILE *fp, int *a)
{
    int i;
    for(i = 0; i < N; i++)
        fscanf(fp, "%d", &a[i]);
}
 
int main(void)
{
    FILE *ifp1, *ifp2, *ifp3, *ofp;
    int i, j, k, a1[N], a2[N], a3[N];
    
    ifp1 = fopen(IFNAME1, "r");
    ifp2 = fopen(IFNAME2, "r");
    ifp3 = fopen(IFNAME3, "r");
    ofp  = fopen(OFNAME, "w");
    if(!ifp1 || !ifp2 || !ifp3 || !ofp) {
        perror("fopen");
        return -1;
    }
 
    fill_array(ifp1, a1);
    fill_array(ifp2, a2);
    fill_array(ifp3, a3);
 
    for(i = 0; i < N; i++) {
        for(j = 0; j < N; j++)
            for(k = 0; k < N; k++)
                if(a1[i] == a2[j] && a1[i] == a3[k]) {
                    fprintf(ofp, "%d ", a1[i]);
                    goto NEXT;
                }
        NEXT: 1;
    }
 
    fclose(ifp1);
    fclose(ifp2);
    fclose(ifp3);
    fclose(ofp);
    return 0;
}
0
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
13.12.2009, 23:14 #6
Цитата Сообщение от perchik71 Посмотреть сообщение
ifstream ifs1(Имя 1 файла,ios::in|ios::binary)
Цитата Сообщение от perchik71 Посмотреть сообщение
ofstream ofs(Имя сохраняемого файла,ios::out|ios::binary)
Цитата Сообщение от perchik71 Посмотреть сообщение
ifstream ifs2(Имя 2 файла,ios::in|ios::binary)
Цитата Сообщение от perchik71 Посмотреть сообщение
ifstream ifs3(Имя 3 файла,ios::in|ios::binary)
Забыл поставит в конце ";" ....
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
13.12.2009, 23:18 #7
Мне какой-то такой кусок кода видится:
C
1
2
3
4
5
6
7
8
...
FILE *f1, *f2, *f3, *fr;
int v1, v2, v3;
...
while ( (fscanf(f1,"%d",&v1) == 1) && (fscanf(f2,"%d",&v2) == 1) && (fscanf(f3,"%d",&v3) == 1) )
  if ( v1 == v2 && v2 == v3 )
    fprintf(fr, "%d ", v1);
...
0
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
13.12.2009, 23:29 #8
мне тут видится алгоритм std::set_intersection(...) который выполняет пересечение 2 интервалов.
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
13.12.2009, 23:30 #9
Понял, что не прав. Так сработает только, если числа в файлах на одних и тех же позициях...
0
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
14.12.2009, 17:16  [ТС] #10
Gravity, непонятно использование оператора goto в конце+ можно ли как-то обойтись без define? Просто никогда им не пользовались ни на семинарах, ни на лекциях...
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
14.12.2009, 17:20 #11
NastiKor,
C
1
2
3
4
5
#define IFNAME1 "1.txt"
#define IFNAME2 "2.txt"
#define IFNAME3 "3.txt"
#define OFNAME "out.txt"
#define N 7
=>
C
1
2
3
4
5
const char *IFNAME1 = "1.txt";
const char *IFNAME2 = "2.txt";
const char *IFNAME3 = "3.txt";
const char *OFNAME = "out.txt";
const int N = 7;
Goto прерывает внутренний цикл, чтобы не гоняться по массивам, когда число уже найдено.
0
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
14.12.2009, 17:22  [ТС] #12
+ программа выдает ошибку:
1>c:\users\1\desktop\строки, структуры, функции\структуры\bredo\bro\bro.cpp(52) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?

Добавлено через 1 минуту
Gravity, т.е. в fopen можно просто указать так:
ifp1 = fopen("1.txt", "r");
ifp2 = fopen("2.txt", "r");
ifp3 = fopen("3.txt", "r");

?

N в данном случае равно 7?
0
perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
14.12.2009, 17:23 #13
Цитата Сообщение от NastiKor Посмотреть сообщение
+ программа выдает ошибку:
1>c:\users\1\desktop\строки, структуры, функции\структуры\bredo\bro\bro.cpp(52) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?

Добавлено через 1 минуту
Gravity, т.е. в fopen можно просто указать так:
ifp1 = fopen("1.txt", "r");
ifp2 = fopen("2.txt", "r");
ifp3 = fopen("3.txt", "r");

?

N в данном случае равно 7?
#include <stdafx.h> скорее всего
0
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
14.12.2009, 19:10  [ТС] #14
perror и Next тоже неизвестные операторы...

Добавлено через 2 минуты
окно открывается и закрывается сразу....библиотека conio.h и getch(); перед return 0;
уже есть...

Добавлено через 2 минуты
забыла сказать...надо это с помощью функции написать..

Добавлено через 1 час 42 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Задано 3 файла, состоящие из 6 чисел каждый.
// Сформировать новый файл из чисел, принадлежащим одновременно всем трем файлам
 
#include "stdafx.h"
#include "conio.h"
 
void sort(char *s1,char *s2, char *s3, char *s4);
 
int _tmain(int argc, _TCHAR* argv[])
{ char s1[6],s2[6],s3[6],s4[6];
printf("Fail s1:\n");
 gets(s1);
 flushall();
printf("Fail s2:\n");
 gets(s2);
 flushall();
printf("Fail s3:\n");
 gets(s3);
 
 sort(s1,s2,s3,s4);
printf("New fail s3:\n");
 puts(s4);
 
    getch();
    return 0;
}
 
void sort(char *s1,char *s2, char *s3)
{ FILE *f1,*f2, *f3;
    int a1,a2,fl;
 
    f1=fopen(s1,"rb");
    f2=fopen(s2,"rb");
    f2=fopen(s2,"w");
 
    while(fread(&a1,4,1,f1))
    {
        fseek(f2,0,0);
 
            fl=0;
        while(fread(&a2,4,1,f2) && fl==0)
        {
            if(a1==a2)
            {
                fl=1;
 
                fprintf(f3,"%d ", a1);
            }
        }
    }
        fclose(f1);
        fclose(f2);
        fclose(f3);
}
 
 
Написала программу для 2 файлов, но и она не работает...
0
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
14.12.2009, 22:26  [ТС] #15
запуталась уже...помогите, пожалуйста...
0
14.12.2009, 22:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2009, 22:26
Привет! Вот еще темы с ответами:

Файлы.Текстовые файлы - C++
Считая t текстовым файлом (файлом типа text), ответить на следующие вопросы: А)Кроме текстовых файлов,файлы какиъ еще типов могут...

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

Файлы - C++
Написать прогу которая копирует инфу с одного файла в другой Функция для певрого файла. int *a,i; a=new int ; ofstream...

файлы в С++ - C++
1)Создать текстовый файл, состоящий из 2-3 предложений. Определить количество слов в нем. 2)Вывести максимальное число из файла...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru