Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Запись в файл, C++ DOS


Автор: nightlife 18.6.2009, 08:19
Всем привет, ниже преведена моя мелкая программа, мне надо записать число p, после его нахождения в файл. Помогите плиз.

Код

#include <iostream.h>
#include <conio.h>
#include <math.h>
int i,j;
int n,m;
int k;
double p=1.0;
double g;
void main()
{
 int k;
 cout << "‚ўҐ¤ЁвҐ а §¬Ґа ¬ ббЁў  ";
 cin >> n ;
 double *a=new double[n];
 void vvod(double *a,int n);
 vvod(a,n);
 void proizvidenie(double *a,int n,int *k);
 proizvidenie(a,n,&k);
 getch();
}


void vvod(double *a,int n)
 {
 for(int i=0;i<n;i++)
     {
      cout << "A[" << i+1 <<  "]=";
      cin >> *(a+i);
     }

 }

void proizvidenie(double *a,int n,int *k)
 {
 *k=0;
 for(int i=0;i<n;i++)
    {
    if(sin(*(a+i))<=.0)    {
                *k=*k+1;
                p*=*(a+i);
                }

    }
 cout << "Вывод" << p << endl;
 }


Ну вот, прошу снизу написать такую же программу, только с возможностью записи числа p в файл, а так же воспроизведение из него.
Заранее спасибо. 

P.S.: прошу не писать кусочки кода) прошу сразу все)

Автор: jhonyxakep 18.6.2009, 09:12
Код

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <fstream.h>

ifstream in; // input
ifstream out; //output
in.open ("input.txt");
out.open("output.txt");


int i,j;
int n,m;
int k;
double p=1.0;
double g;
void main()
{
 int k;
 cout << "‚ўҐ¤ЁвҐ а §¬Ґа ¬ ббЁў  ";
 cin >> n ;
 double *a=new double[n];
 void vvod(double *a,int n);
 vvod(a,n);
 void proizvidenie(double *a,int n,int *k);
 proizvidenie(a,n,&k);
 getch();
}


void vvod(double *a,int n)
 {
 for(int i=0;i<n;i++)
     {
      cout << "A[" << i+1 <<  "]=";
      cin >> *(a+i);
     }

 }

void proizvidenie(double *a,int n,int *k)
 {
 *k=0;
 for(int i=0;i<n;i++)
    {
    if(sin(*(a+i))<=.0)    {
                *k=*k+1;
                p*=*(a+i);
                }

    }
 out << "Вывод" << p << endl;

in.close();
out.close(); 

}




У меня в борланде в GCC B minGW это работает, попробуй, вместо cout подставляешь out, вместо cin in. Понял????

Добавлено через 1 минуту и 8 секунд
Цитата(nightlife @  18.6.2009,  08:19 Найти цитируемый пост)
P.S.: прошу не писать кусочки кода) прошу сразу все) 

ИМХО
это относится к центру помощи

Автор: andrew_121 18.6.2009, 09:42
Цитата(jhonyxakep @  18.6.2009,  09:12 Найти цитируемый пост)
это относится к центру помощи

Именно!

Автор: nightlife 18.6.2009, 10:00
не пашет)

Borlnd C++ DOS не переваривает in и out..

для него случаем отдельные инклуды подключать не надо?

Автор: jhonyxakep 18.6.2009, 10:28
nightlife, А я на каком борланде по твоему пробовал? Может я где-то очепятался?

Автор: jhonyxakep 18.6.2009, 12:18
Код

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <fstream.h>

  ifstream in;
  ofstream out;
  in.open ("input.txt");
  out.open ("output.txt");


int i,j;
int n,m;
int k;
double p=1.0;
double g;
void main()
{
 int k;
 cout << "‚ўҐ¤ЁвҐ а §¬Ґа ¬ ббЁў  ";
 cin >> n ;
 double *a=new double[n];
 void vvod(double *a,int n);
 vvod(a,n);
 void proizvidenie(double *a,int n,int *k);
 proizvidenie(a,n,&k);
 getch();
}


void vvod(double *a,int n)
 {
 for(int i=0;i<n;i++)
     {
      cout << "A[" << i+1 <<  "]=";
      cin >> *(a+i);
     }

 }

void proizvidenie(double *a,int n,int *k)
 {
 *k=0;
 for(int i=0;i<n;i++)
    {
    if(sin(*(a+i))<=.0)    {
                *k=*k+1;
                p*=*(a+i);
                }

    }
 out << "Вывод" << p << endl;

 in.close();
 out.close(); 

}

Вот 100% рабочее добавление со всеми стандартами C/C++. Если не заработает, значит что-то не так делаешь smile

Автор: zim22 18.6.2009, 13:14
Цитата(jhonyxakep @  18.6.2009,  12:18 Найти цитируемый пост)
со всеми стандартами C/C++

это вы сами решили?
Цитата(jhonyxakep @  18.6.2009,  12:18 Найти цитируемый пост)
void main()

Цитата

3.6.1.2 Main function 
An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a return
type of type int
, but otherwise its type is implementation-defined. 


Цитата(jhonyxakep @  18.6.2009,  12:18 Найти цитируемый пост)
getch();

нет такой функции в стандарте
Цитата(jhonyxakep @  18.6.2009,  12:18 Найти цитируемый пост)
 
Код

in.open ("input.txt");
out.open ("output.txt");


Цитата

3.6.1 Main function 
A program shall contain a global function called main, which is the designated start of the program.

вы в глобальной области видимости пытаетесь вызывать функции-члены классов ifstream|ofstream. Не имеете права.


Автор: azesmcar 18.6.2009, 14:15
zim22 smile 

внесу свою лепту


Цитата(jhonyxakep @  18.6.2009,  12:18 Найти цитируемый пост)

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <fstream.h>

таких заголовочных файлов - нет
#include <iostream.h> правильный аналог #include <iostream>
#include <math.h> правильный аналог #include <cmath>
#include <fstream.h> правильный аналог #include <fstream>
#include <conio.h> такого вообще нет

Цитата(jhonyxakep @  18.6.2009,  12:18 Найти цитируемый пост)
  in.open ("input.txt");
  out.open ("output.txt");

что это? глобальный вызов функции?
cin, cout, ifstream, ostream ... находятся в пространстве имен std (опять таки по стандарту).
Цитата

double *a=new double[n];

а удалять кто будет?

дальше думаю не стоит продолжать smile 
надо сильно постараться чтобы написать такой код, следовательно думаю это шутка smile

Добавлено через 1 минуту и 5 секунд
Цитата(jhonyxakep @  18.6.2009,  12:18 Найти цитируемый пост)
Если не заработает, значит что-то не так делаешь 

это точно. если не заработает, значит не того слушаешь smile 

Автор: andrew_121 18.6.2009, 14:41
zim22
azesmcar, Доброе утро!
Хорош придираться!
Кто-то из Вас знает какого года Borland C++ 3.1? И я не знаю. Думаю на то время и стандарта то не было. По сему, слова jhonyxakep-а можно щитать просто безобидной насмешкой.
Мое почтение.

Автор: azesmcar 18.6.2009, 14:49
Цитата(andrew_121 @  18.6.2009,  14:41 Найти цитируемый пост)
По сему, слова jhonyxakep-а можно щитать просто безобидной насмешкой.

Цитата(azesmcar @  18.6.2009,  14:15 Найти цитируемый пост)
думаю это шутка 


Автор: andrew_121 18.6.2009, 15:01
jhonyxakep, Кстати. Любопытства ради, скажи какого года компилятор.
Спасибо!

Автор: zim22 18.6.2009, 15:39
Цитата(andrew_121 @  18.6.2009,  15:01 Найти цитируемый пост)
 скажи какого года компилятор.

1991 где-то. лень смотреть.

Автор: andrew_121 18.6.2009, 16:48
Мдя...стандартом тогда и не пахло)

Автор: jhonyxakep 19.6.2009, 06:38
Цитата(zim22 @  18.6.2009,  13:14 Найти цитируемый пост)
вы в глобальной области видимости пытаетесь вызывать функции-члены классов ifstream|ofstream. Не имеете права.

Ой блин, не заметил, просто привычка перед переменными писать присоъединение файла

Когда я последний раз писал на Borland C++ 3.1 я был готов разнести комп с дробовика... 

А вообще пользуюсь MinGW, только у себя в коде ifstream написал в main а сюда не прокопипастил... Вот-так! Впредь буду топики проверять, а то так и облажатся можно... smile 

Автор: ller 23.6.2009, 00:37
На сколько помню в Borland 3.1 как раз и были фалы 
Код

#include <iostream.h>
#include <conio.h>
#include <math.h>

А вот 
Код

#include <iostream>
#include <сmath>

не было, и не было пространства имен std если память ни с кем не изменяет smile

Автор: jhonyxakep 23.6.2009, 15:25
Цитата(ller @  23.6.2009,  00:37 Найти цитируемый пост)
не было, и не было пространства имен std если память ни с кем не изменяет 

действительно не было. За память 5+!
Цитата

#include <iostream>

Вроде борланд 3 такой что его можно назвать вообще другим языком...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)