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

исправьте программу пожалуйста - C++

Восстановить пароль Регистрация
 
денис 1986
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 3
01.12.2012, 16:50     исправьте программу пожалуйста #1
не переписывает строки меньше 50 дважды ,меньше 70 часть копирует и переносит на другую строку,завтра курсовую защищать с этой программой


Переписать из входного файла только те строки, длина которых меньше 70.
// Строки длиной меньше 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
##include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
using namespace std;
const int N=256;                //Константный размер строки
char *FName1="F_1.txt";             //Путь к файлу для чтения
char *FName2="F_2.txt";             //Путь к файлу для записи
int ii, i, len;                 //Счетчик строк
string Stroka[100];             //массив строк из 100  элементов
/*Вывод текста из файла на экран*/
void ReadFile()
{
  cout<<endl<<"ReadFile:  ";
  ii=0;
  char S[N];                //В переменную S будут считываться строки
      ifstream in1(FName1);             //Открытие файла для чтения
     while (!in1.eof())             //Чтение пока не достигнут конец файла
       {
         in1.getline(S,N);          //Построчное считывание информации в S
     ii = ii + 1;
     Stroka[ii] = S;
         cout<<S<<endl;             //Вывод очередной строки на экран
       }
       in1.close();                 //Закрытие файла
}
 
 
/*Ввод текста в файл*/
void CreateFile()
{
cout<<"Create File:  "<<endl;
//char S[255];                  //В S будет считываться строка
int count=ii;                   //Число строк для ввода в файл
/*Главная часть функции*/
     ofstream out1(FName2);             //Открыли файл для записи
     for (int i=1;i<count+1;i++)        //Цикл по количеству нужных строк
      {
    string S("100");
    len=Stroka[i].length();         //Вычисление длины строки
    if (len<70)
    {
          out1<<S<<endl;            //Записали S в файл и дописали перенос строки
    }
    if (len<50)
    {
          out1<<S<<endl;            //Записали S в файл и дописали перенос строки
    }
 
      }
  out1.close();
}
 
void main()
{
   system("CLS");
   ReadFile();                  //Чтение файла строк из файла и выводит их на экран
   CreateFile();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.12.2012, 17:00     исправьте программу пожалуйста #2
Цитата Сообщение от денис 1986 Посмотреть сообщение
string S("100");
len=Stroka[i].length(); //Вычисление длины строки
if (len<70)
{
out1<<S<<endl; //Записали S в файл и дописали перенос строки
}
if (len<50)
{
out1<<S<<endl; //Записали S в файл и дописали перенос строки
}
А он вообще что-нибудь кроме числа 100 в файл пишет?

Не по теме:

Вообще конечно, куда катится наше образование? В университетах ЗАЩИЩАЮТ! курсовые уровня школьного кружка информатики. А конструктор Яковлев самолёты уже сам строил, когда в ВУЗе даже не на старших курсах учился.

денис 1986
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 3
01.12.2012, 17:18  [ТС]     исправьте программу пожалуйста #3
число 100 не пишет.строки меньше 50 просто показывает но дважды не отображает,меньше 70 часть копирует и переносит на другую строку.
с информатикой не сталкивался,поступил заочно ,задали сделать.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.12.2012, 17:31     исправьте программу пожалуйста #4
ой, ну вообще-то твоя программа не должна компилироваться из-за void main как минимум в некоторых средах из-за void main().
денис 1986
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 3
01.12.2012, 17:37  [ТС]     исправьте программу пожалуйста #5
незнай компилируется же
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
01.12.2012, 17:44     исправьте программу пожалуйста #6
много лажи, но если тебе нужно 2 раза, то
C++
1
2
3
4
5
    if (len<50)
    {
          out1<<S<<endl;            //Записали S в файл и дописали перенос строки
          out1<<S<<endl;
    }
если честно, не совсем понял как работает функция записи)
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.12.2012, 18:00     исправьте программу пожалуйста #7
Цитата Сообщение от NeonLost Посмотреть сообщение
if (len<50) { out1<<S<<endl; //Записали S в файл и дописали перенос строки out1<<S<<endl; }
так у него вообще в одном месте Stroka[], в другом S читает одно, сравнивает и пишет другое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 18:05     исправьте программу пожалуйста
Еще ссылки по теме:

C++ Исправьте пожалуйста программу. Нахождение суммы ряда
C++ Исправьте код пожалуйста!
C++ Исправьте ошибку, пожалуйста

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

Или воспользуйтесь поиском по форуму:
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
01.12.2012, 18:05     исправьте программу пожалуйста #8
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
так у него вообще в одном месте Stroka[], в другом S читает одно, сравнивает и пишет другое.
я тоже удивлен как такой код живет...)
Yandex
Объявления
01.12.2012, 18:05     исправьте программу пожалуйста
Ответ Создать тему
Опции темы

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