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

Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 18:45     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #1
Текст задачи
Даны два файла целых чисел одного размера с именами Name1 и Name2. Создать текстовый файл с именем NameT, содержащий изображения этих чисел, расположенные в два столбца шириной по 30 символов: первый содержит числа из файла Name1, второй- из файла Name2. Вначале и конце каждой строки текстового файла ввести разделитель"|". Числа выравниваются по правому краю столбца.
В кратце. Третий файл должен содержать цифры из первых двух,записанные в столбик.УМОЛЯЮ ПОМОГИТЕ!!!!!

Вот текст моей проги
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
#include<iostream.h>;
#include <string.h>
#include <fstream>
#include<stdio.h>;
#pragma argsused
void main( void )
{
FILE *Name1;
FILE *Name2;
FILE *NameT;
char* file_name1 = "Name1.txt";
char* file_name2 = "Name2.txt";
char* file_nameT = "NameT.txt";
char load_string[50] = "none";
char w[50] = "none";
char q[50] = "none";
int  i,j;
Name1 = fopen( file_name1, "wt" );
Name2 = fopen( file_name2, "wt" );
   for( i=0; i<5; i++ )
   {
     fprintf( Name1, "|%d| ", i );
   }
   for( j=0; j<5; j++ )
   {
     fprintf( Name2, "|%d| ", j );
   }
fclose( Name1 );
fclose(Name2);
 
Name1 = fopen( file_name1, "r" );
Name2 = fopen( file_name2, "r" );
NameT = fopen( file_nameT, "wt" );
if( Name1 != 0 )
{
fgets( w, 50 , Name1 );
cout << "Name1 : \n\n" << w <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
if( Name2 != 0 )
{
fgets( q, 50 , Name2 );
cout << "Name2  \n\n" << q <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fputs(w,NameT);
fputs(q,NameT);
fclose(NameT);
fclose(Name1);
fclose(Name2);
NameT = fopen( file_nameT, "r" );
if( NameT != 0 )
{
fgets( load_string, 50 , NameT );
cout << "NameT : \n\n" << load_string<<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fclose(NameT);
system("pause");
}
//---------------------------------------------------------------------------
Тут осталось тока сделать вывод третьего файла в столбик с выравниванием.Это как раз я и не знаю как сделать.Помогите плиз позарез сегодня нужна.

Добавлено через 58 минут 38 секунд
Помогите пожалуйста,если завтра не сдам из универа могу вылететь((((((((((((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2009, 18:45     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц
Посмотрите здесь:

Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке C++
C++ Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла.
C++ Создать текстовый файл, содержащий программу на С++
Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла C++
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл C++
C++ Дан символ 'C' (прописная латинская буква) и текстовый файл. Создать строковый файл, содержащий все слова из исходного файла, начинающиеся этой буквой
Дан символ 'C' (прописная латинская буква) и текстовый файл. Создать строковый файл, содержащий все слова из исходного файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 19:09     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #2
Я что-то с трудом могу понять, что делает программа на данный момент?
Точнее - я вижу, что, но не понимаю смысла.

Такой вопрос: накладывается ли на задачу требование, с помощью каких средств ввода/вывода реализовывать задачу? Есть возможность это сделать стандартными средствами с помощью структуры FILE и функций fopen/fclose/fgets и т.д., либо с помощью классов потоков ввода/вывода fstream.
Экспертами в C++ не рекомендуется использовать в одной программе оба эти средства.

PS: вообще, к задачам на файлы (по крайней мере в нашем университете), рекомендовали псать отдельную программу для создания исходного файла (исходных файлов), и отдельно программу для их обработки - то есть не лепить всё в одну кучу.

ну или можно реализовать это с использованием функций хотя бы. Например формирование исходных файлов (если принцип один, то дважды вызвать одну и ту же функцию для двух разных файлов) в одной функции, а обработка файла (файлов) с заданным именем и именем для выходного файла в другой.
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 19:22  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #3
На данный момент программа создает два файла и заполняет его цифрами далее копирует в 3 файл и выводит на экран. С тобой полностью согласен что код у меня кривой.Это из-за того что я дела с файлами не имел(((((((.Если не сложно можешь написать код программы которая будет отвечать требованиям поставленным в задании. Буду безмерно благодарен.

Добавлено через 3 минуты 10 секунд
А насчет средств если согласишься написать прогу используй те средства которые ты считаешь нужнымии более удобными, но одна просьба если это возможно без функций(но если так лучше возражать не буду)
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 19:24     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #4
Какими средствами делать - имеет значение? Классами потоков (C++, <fstream>), или функциями (C, <cstdio>)?



PS: переделывай свою прогармму просто для создания двух файлов, а я напишу пока программу для слияния двух файлов.
Давай договоримся насчет парочки констант и их имен. Например, сколько чисел в строке - известно, или же это необходимо определять по ходу обработки? Сколько строк? Считать известными и фиксированными?
И еще - разделители должны быть в начале и в конце строки каждого файла (в том числе и результирующего, как я понял). А в твоей программе, насколько я понимаю, получается каждое число с двух сторон имеет по рпзделителю, а значит между соседними числами - два разделителя, что кажется совсем неправильным.
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 19:28  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #5
классами потоков. Если сделаешь век не забуду
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 19:31     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #6
Цитата Сообщение от Андрей Полынкин Посмотреть сообщение
классами потоков. Если сделаешь век не забуду
ну раз классами потоков, тогда тебе придется переделать в своей прогармме все места взаимодействия с файлами с помощью методов этих классов .
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 19:37  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #7
а ты можешь это сделать плиз просто я же говорю я не имел дело с файлами вообще практически ни чего не понимаю(((((( Если чесно я бы переделал есил знал файлы а так приходится просить(((((( Ты напишешь?

Добавлено через 2 минуты 2 секунды
а через stdio.h ,который по ходу я использовал много надо переделывать
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 19:46     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #8
на самом деле сложного ничего нет.

вот пример работы с файлом с помощью fstream:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fstream fp;
if(!fp.open(Name1,"r"))
{
cout << "There was any problem to open the file" << endl;
return -1;
}
int num;
while(!fp.eof())
{
fp >> num;
cout << num << '\t';
}
 
fp.close();
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 19:52  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #9
Понятно.Ты так и не сказал много надо исправить в моей проге используя функции которые я взял ,для того чтобы сделать вывод в 2 столбца?
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 19:55     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #10
а она вообще работает?

если бы ты поместил сюда код, используя обрамление тегами для языка C++ (они в форме редактирования сообщения есть), нам было бы легче общаться, т.к. там есть нумерация строк.
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 20:00  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #11
то что написано работает.Создает 2 файла ,записывает цифры(в строчку) копирует цифры в 3 файл(тоже в строчку(((((((((() и выводит на экран

Добавлено через 1 минуту 50 секунд
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
58
59
60
61
62
63
64
65
66
67
68
69
#include<iostream.h>;
#include <string.h>
#include <fstream>
#include<stdio.h>;
#pragma argsused
void main( void )
{
FILE *Name1;
FILE *Name2;
FILE *NameT;
char* file_name1 = "Name1.txt";
char* file_name2 = "Name2.txt";
char* file_nameT = "NameT.txt";
char load_string[50] = "none";
char w[50] = "none";
char q[50] = "none";
int  i,j;
Name1 = fopen( file_name1, "wt" );
Name2 = fopen( file_name2, "wt" );
   for( i=0; i<5; i++ )
   {
     fprintf( Name1, "|%d| ", i );
   }
   for( j=0; j<5; j++ )
   {
     fprintf( Name2, "|%d| ", j );
   }
fclose( Name1 );
fclose(Name2);
 
Name1 = fopen( file_name1, "r" );
Name2 = fopen( file_name2, "r" );
NameT = fopen( file_nameT, "wt" );
if( Name1 != 0 )
{
fgets( w, 50 , Name1 );
cout << "Name1 : \n\n" << w <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
if( Name2 != 0 )
{
fgets( q, 50 , Name2 );
cout << "Name2  \n\n" << q <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fputs(w,NameT);
fputs(q,NameT);
fclose(NameT);
fclose(Name1);
fclose(Name2);
NameT = fopen( file_nameT, "r" );
if( NameT != 0 )
{
fgets( load_string, 50 , NameT );
cout << "NameT : \n\n" << load_string<<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fclose(NameT);
system("pause");
}
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 20:08     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #12
Нажми "правка" для своего сообщения и выдели весь код программы, затем нажми кнопочку с надписью "C++", она под кнопками для управления начертанием шрифта (B,I,U).

Добавлено через 4 минуты 20 секунд
PS: и если можно, то текст задания не в кратце, а полностью - как преподаватель дал .
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 20:26  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #13
Программа рабочая. Создает два файла, заполняет его числами(в строчку), создает 3 файл, копирует в него числа из первых двух и выводит на экран(тоже в строчку(((((((()

Добавлено через 59 секунд
текст задания я привел полностью как препод дал

Добавлено через 1 минуту 21 секунду
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
58
59
60
61
62
63
64
65
66
67
68
69
#include<iostream.h>;
#include <string.h>
#include <fstream>
#include<stdio.h>;
#pragma argsused
void main( void )
{
FILE *Name1;
FILE *Name2;
FILE *NameT;
char* file_name1 = "Name1.txt";
char* file_name2 = "Name2.txt";
char* file_nameT = "NameT.txt";
char load_string[50] = "none";
char w[50] = "none";
char q[50] = "none";
int  i,j;
Name1 = fopen( file_name1, "wt" );
Name2 = fopen( file_name2, "wt" );
   for( i=0; i<5; i++ )
   {
     fprintf( Name1, "|%d| ", i );
   }
   for( j=0; j<5; j++ )
   {
     fprintf( Name2, "|%d| ", j );
   }
fclose( Name1 );
fclose(Name2);
 
Name1 = fopen( file_name1, "r" );
Name2 = fopen( file_name2, "r" );
NameT = fopen( file_nameT, "wt" );
if( Name1 != 0 )
{
fgets( w, 50 , Name1 );
cout << "Name1 : \n\n" << w <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
if( Name2 != 0 )
{
fgets( q, 50 , Name2 );
cout << "Name2  \n\n" << q <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fputs(w,NameT);
fputs(q,NameT);
fclose(NameT);
fclose(Name1);
fclose(Name2);
NameT = fopen( file_nameT, "r" );
if( NameT != 0 )
{
fgets( load_string, 50 , NameT );
cout << "NameT : \n\n" << load_string<<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fclose(NameT);
system("pause");
}
Добавлено через 38 секунд
вот так

Добавлено через 5 минут 18 секунд
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
#include<iostream.h>;
#include <string.h>
#include <fstream>
#include<stdio.h>;
#pragma argsused
void main( void )
{
FILE *Name1;
FILE *Name2;
FILE *NameT;
char* file_name1 = "Name1.txt";
char* file_name2 = "Name2.txt";
char* file_nameT = "NameT.txt";
char load_string[50] = "none";
char w[50] = "none";
char q[50] = "none";
int  i,j;
Name1 = fopen( file_name1, "wt" );
Name2 = fopen( file_name2, "wt" );
   for( i=0; i<5; i++ )
   {
     fprintf( Name1, "|%d| ", i );
   }
   for( j=0; j<5; j++ )
   {
     fprintf( Name2, "|%d| ", j );
   }
fclose( Name1 );
fclose(Name2);
 
Name1 = fopen( file_name1, "r" );
Name2 = fopen( file_name2, "r" );
NameT = fopen( file_nameT, "wt" );
if( Name1 != 0 )
{
fgets( w, 50 , Name1 );
cout << "Name1 : \n\n" << w <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
if( Name2 != 0 )
{
fgets( q, 50 , Name2 );
cout << "Name2  \n\n" << q <<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fputs(w,NameT);
fputs(q,NameT);
fclose(NameT);
fclose(Name1);
fclose(Name2);
NameT = fopen( file_nameT, "r" );
if( NameT != 0 )
{
fgets( load_string, 50 , NameT );
cout << "NameT : \n\n" << load_string<<"\n"<< endl;
}
else
{
cout << "File not found !!!" << endl;
}
fclose(NameT);
system("pause");
}
 
//---------------------------------------------------------------------------
Добавлено через 1 минуту 58 секунд
Блин запутался то ли добавляет сообщение то ли нет сори за флуд одними и теми же сообщениями
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 20:32     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #14
По заданию не совсем понятно - только в конечном файле должны быть разделители в начале и конце каждой строки, или в исходных тоже.
Из задания неясно - сколько чисел в строке. И что значит ширина 30 символов? Либо просто выводить числа подряд из файла, и когда общая ширина строки достигнет 30 символов, то продолжать вывод с новой строки, либо это какой-то намек на количество чисел в строке.

И собственно, числа-то какие - целые, или вещественные?

Добавлено через 1 минуту 2 секунды
(Попробуй просто обновить страницу. если не получится, то лишнее удалишь. у меня тоже бывало такое)

PS: просто в зависимости от условия решение может быть как элементарным, так и не слишком тривиальным. Например, если количество чисел в строке не фиксировано, то нужно будет его определить еще по входному файлу. К тому же, если разделители присутствуют во входных файлах тоже, то придется работать со строками (чего не хочется), что весьма осложнит задачу и выигрыша от использования потоков не будет.
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 20:39  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #15
Числа в исходных вещественные, что же касается разделителей то только в конечном файле анасчет столбцов они должны быть просто шириной 30 т.е. разделител как я понял обозначают нширину столбца
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 20:43     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #16
ну так по сколько же чисел в строке у каждого файла?
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 20:54  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #17
лучше по одной например
1
2
3
4
5

Добавлено через 37 секунд
рандомно как я заполни его просто
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 21:08     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #18
по одному числу на 30 символов???

я тут почитал о форматировании при работе с потоками.

если скажем ограничить поле вывода вещественного числа шестью символами, то по 5 получится.
Тогда ширина равна 6, прижимаем к правому краю, всегда есть запятая и число знаков после запятой равно двум. какое максимальное количесво символов при таких настройках будет занимать число?
считаем:
- один символ на знак;
- один символ для цифры перед точкой;
- один символ на точку;
- две цифры после точки
- и еще может быть E{+/-} и от одной до трех (кажется цифр) для числа типа double и до двух цифр для знака экспоненты для чисел типа float.

Что имеем: 10 символов - необходимый минимум ширины поля при таких параметрах плюс еще один пробел, чтобы соседние числа не сливались.

Значит берем ширину поля 15 и выводим по 2 числа в строку .

Добавлено через 1 минуту 6 секунд
PS: рандомно - это не как ты, а с вызовом функции rand() .
Андрей Полынкин
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 20
25.05.2009, 21:11  [ТС]     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #19
насчет rand() яобразно сказалнасчет остального логично, я с тобой согласен делаем 15 а преподу завтра объясню
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2009, 21:20     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц
Еще ссылки по теме:

C++ Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла
C++ Создать файл целых чисел содержащий сумму чисел из каждой строки исходной таблицы
Дан текстовый файл. Создать символьный файл, содержащий все знаки препинания, встретившиеся в текстовом файле C++
Создать текстовый файл, содержащий таблицу значений заданной функции на указанном промежутке C++
Создать текстовый файл содержащий все группы слов из словаря отличающиеся расположением букв C++

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

Или воспользуйтесь поиском по форуму:
Xardas
15 / 15 / 0
Регистрация: 08.05.2009
Сообщений: 81
25.05.2009, 21:20     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц #20
в общем я минут через 30-40 - сейчас занят немного.
Yandex
Объявления
25.05.2009, 21:20     Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц
Ответ Создать тему
Опции темы

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