Задачи на файлы С++

  • Автор темы Lomka
  • Дата начала
L

Lomka

#1
Не могу решить задачи. может кто найдет ошибки в коде
1. Программным путем создать файл следующего вида:
1
1 2
1 2 3
1 2 3 4

1 2 3 4 5 6 7 8 9
Доработайте программу так, чтобы количество строк запрашивалось у пользователя с клавиатуры.

все что я смогла сделать:

#include <fstream.h>
#include <conio.h>
#include <iomanip.h>

void main()

{clrscr();
fstream fo;
fo.open("fo.txt",ios::eek:ut);

int i,x;int k=1;

cout<<"vvedi:"<<"\n"<<"x=";
cin>>x;

for (i=1;i<x;i++)
{for (i=1;i<k;i++)
fo<<i;}
k++;
fo.close();
getch();
}

Создается файл, но ничего не записывается туда.

Вот еще одна задача:
2. Даны два текстовых файла. Вывести их содержимое на экран. Сравнить файлы на совпадение и вывести результат проверки.

Код:
#include <ctype.h>
#include <fstream.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

void main()
{clrscr();
char s1,s2;int result;
ifstream F ("d:\\1.txt");
if (F.fail())
{ cout <<"Oshibka \n";}
cout<<"text 1ogo faila:";
while (F>>s1)
cout <<s1;

ifstream F1 ("d:\\2.txt");
if (F1.fail())
{ cout <<"Oshibka \n";}
cout<<"text 2ogo faila:";
while (F1>>s2)
cout <<s2;

result=strcmp(int const char *s1,int const char *s2);
if (result==0)
cout<<"s1=s2"<<endl;
else if (result>0)
cout<<"s1<s2"<<endl;
else cout<<"s1>s2"<<endl;
return 0;

F.close();
F1.close();
getch();
}
эта задача не запускается...
 
I

ierofant

#2
2.
C++:
#include <iostream>
#include <algorithm>
#include <fstream>
#include <iterator>

typedef std::istreambuf_iterator<char> Itr;

int main ()
{
std::ifstream in1 ("file1");
if (in1)
{
std::cout << "Первый файл: " << std::endl;
std::for_each (Itr (in1), Itr (), std::bind1st (std::mem_fun (&std::ofstream::put), &std::cout));
std::cout << std::endl << std::endl;
}
else std::cout << "Ошибка при отрытии первого файла!" << std::endl;

std::ifstream in2 ("file2");
if (in2)
{
std::cout << "Второй файл: " << std::endl;
std::for_each (Itr (in2), Itr (), std::bind1st (std::mem_fun (&std::ofstream::put), &std::cout));
std::cout << std::endl << std::endl;
}
else std::cout << "Ошибка при отрытии второго файла!" << std::endl;

if (in1 && in2)
{
in1.seekg (0);
in2.seekg (0);
if (std::equal (Itr (in1), Itr (), Itr (in2))) std::cout << "Содержимое файлов совпадает" << std::endl;
else std::cout << "Содержание файлов различно" << std::endl;
}
return 0;
}
 
I

ierofant

#3
1.
C++:
#include <iostream>
#include <algorithm>
#include <fstream>

int main ()
{
std::ofstream in ("file1", std::ios::out | std::ios::trunc);
if (in)
{
unsigned n_rows;
std::cout << "Введте кол-во строк: ", std::cin >> n_rows;	
for (unsigned i = 1; i <= n_rows; ++i)
{
for (unsigned ii = 1; ii <= i; ++ii) in << ii << " ";
in << std::endl;
}
}
else std::cout << "Ошибка при отрытии файла!" << std::endl;	
return 0;
}
 
L

Lomka

#4
спасибо! только тут так все сложно....я никак не разберусь....вот например это что #include <algorithm> - я такого вообще не знаю)))
 
L

Lomka

#6
спасибо :)
но мне надо эти задачи попроще решить, нельзя использовать #include <algorithm>, #include <iterator>(т.к. мы их не изучали)
но все равно большое спасибо за помощь))))
 
I

ierofant

#7
А, кстати, в задаче 1 можно убрать #include <algorithm> ! У меня он туда случайно затесался, так что там всё что вы проходили.
 
L

Lomka

#8
да, спасибо! я там убрала эту библиотеку и все эти std::, а то из-за них ошибки)))
 
L

Lomka

#10
ну да. они там вообще для чего?
сижу, который день разбираю код)))))
 

lazybiz

Well-known member
03.11.2010
1 339
0
#11
Если ты убрала "std::", то скорее всего поставила ".h" в конце имен включаемых файлов. Ошибки появились после того, как ты стала редактировать код.
 
L

Lomka

#12
нет, ошибки были сразу. смысл мне трогать код если бы он работал)))
 

lazybiz

Well-known member
03.11.2010
1 339
0
#13
Тут таких гостей хватает, которым дают рабочий код а они его исправляют и говорят что он не работает.
Напиши какие были ошибки.
 
L

Lomka

#14
да я это все понимаю.там 11 ошибок выходит,может просто это потому что код написан на Visual Studio, а у меня Borland C++ 3.1.
В общем не суть! все равно первую задачу я исправила и все работает, а вот вторая - нет((
 
I

ierofant

#15
Ну понятно, Borland C++ 3.1 это же динозавр, там много чего не соответствует нынешним реалиям ;)