#include <cstdlib>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <algorithm>
using namespace std;
#define N 7
void CreatInFile(const char *InFile, double array[N], int count);
void ViewFile(const char *InFile);
void ScreenOut(const char *InFile, double array[N], int count);
int main(int argc, char *argv[])
{
const char first_file[] ={"1.txt"};
double array[N];
int x;
int count;
cout<<"Input arrays number:";
cin>>x;
cout<<endl;
CreatInFile(first_file, array,x);
ViewFile(first_file);
ScreenOut(first_file ,array,x);
system("PAUSE");
return EXIT_SUCCESS;
}
void CreatInFile(char const *File, double array[N], int count)
{
int i,j;
ofstream outFile(File);
for (j=1; j<=count;j++ )
{
for(i=0; i<N; i++)
{
array=50-rand()%100/5.25;
outFile.width(4);
// outFile<<" ";
outFile<< array;
}
// outFile.seekg(0);
outFile<<endl;
}
outFile<<endl;
outFile.close();
}
void ViewFile(const char *File)
{
ifstream file(File);
cout<< file.rdbuf();
file.close();
}
void ScreenOut(const char *InFile, double array[N], int count)
{
int i, j, dum;
ifstream inFile(InFile);
for(j=0; j<=count-1; j++)
{
dum=0;
for(i=0; i<N; i++)
{
inFile>> array;
if(array==0)
{
dum++;
}
}
if(dum==0)
{
for(i=0; i<N; i++)
{
cout.width(4);
inFile.seekg(0);
cout<<array;
}
cout<<endl;
}
// inFile.seekg(0);
// fseek(inFile,0L,SEEK_SET);
}
inFile.close();
}
помогите с лабой. работа с файлами(С++).
Возникла небольшая проблема с программой, прошу помочь)
Цитата:
Компоненты типизированного файла – массивы, состоящие из 7 вещественных чисел. Вывести на экран те из них, которые не содержат нулей.
вот моя попытка
Код:
Не получается сделать outFile.seekg(0); в ф-и CreatInFile, или она работает только с ifstream? поправте плиззз
Цитата: kermit
Вывести на экран...
На сколько я понял тебе надо прочитать из файла массивы и показать те из них которые не содержат нулей. Тогда зачем ты обратно пишешь их в файл?
в общем дело хозяйское, но я бы решил твою задачу так:
Код:
#include <iostream>
#include <fstream>
using namespace std;
const int N = 7;
int main(void)
{
ifstream in;
in.open("file.txt");
double mas[N];
bool flag = false;
int i = 0;
if(in.fail())
{
cout << "\nError.";
system("PAUSE");
exit(0);
}
while(!in.eof())
{
for(i=0; i<N; i++)
{
in >> mas;
if(mas==0)
{
flag = true;
break;
}
}
if(flag == false)
{
cout << "\n";
for(i=0; i<N; i++)
{
cout << mas<< "\t";
}
}
flag = false;
}
cout << "\n";
system("PAUSE");
return EXIT_SUCCESS;
}
#include <fstream>
using namespace std;
const int N = 7;
int main(void)
{
ifstream in;
in.open("file.txt");
double mas[N];
bool flag = false;
int i = 0;
if(in.fail())
{
cout << "\nError.";
system("PAUSE");
exit(0);
}
while(!in.eof())
{
for(i=0; i<N; i++)
{
in >> mas;
if(mas==0)
{
flag = true;
break;
}
}
if(flag == false)
{
cout << "\n";
for(i=0; i<N; i++)
{
cout << mas<< "\t";
}
}
flag = false;
}
cout << "\n";
system("PAUSE");
return EXIT_SUCCESS;
}
у меня такая же задача на паскале и тож не получается(((
Это на С++.Автор,пиши в названии темы язык.