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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lenavev
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 17
#1

Сжать файл (убрать пробелы) - C++

18.04.2014, 09:07. Просмотров 344. Ответов 8
Метки нет (Все метки)

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
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
 
#define n 50
using namespace std;
 
int main ()
{ char mas[n];
    FILE *f1;
    f1= fopen ("file.txt", "r");
    for (int i=0; i<n; i++)
     fscanf (f1, "%s", &mas[i]);
     fclose (f1);
     cout << "File name";
     char s[10];
     cin >> s;
     ofstream out(s);
     for (int i=1; i<51; i++)
     {
     if( mas[i]!=' ')
     ifstream in(s);
     fprintf (f1,"%s", &mas[i]);
     }
     cout <<s<< endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

Исправьте, пожалуйста ошибку, у меня открывается пустой новый файл
Задание:2. Символьный файл содержит пробелы. Сжать этот файл (убрать пробелы).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 09:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сжать файл (убрать пробелы) (C++):

Убрать лишние(повторяющиеся) пробелы, и записать в файл - C++
помоги, пожалуйста, доработать программу Надо убрать лишние(повторяющиеся) пробелы, и записать в файл using namespace std; int...

Сжать строку, удалив из нее все пробелы - C++
Люди,очень прошу!помогите написать несколько программа,через неделю зачёт,а я вообще ничего не успеваю... 3.Написать и протестировать...

Убрать лишние пробелы - C++
отформотировать строку 1)убрать все лишние пробелы 2) убрать 1 пробел после знака препинания ПЕРВУЮ ЗАДАЧУ РЕШИЛ . ...

Убрать лишние пробелы в строке - C++
дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так чтобы между словами оставался один пробел

Убрать пробелы в генераторе перестановок - C++
Всем привет! Нашел код генератора перестановок с любым количеством символов,проблема состоит в том что когда генерируются...

Убрать пробелы в конце строки - C++
Условие : Опишите функцию, удаляющую в строке все начальные и все конечные пробелы. Все начальные пробелы убрать у меня получилось. А как...

8
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
18.04.2014, 09:35 #2
fclose (f1); поставь после цикла for по i.
0
Lenavev
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 17
18.04.2014, 09:41  [ТС] #3
все равно новый файл - пустой

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
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
 
#define n 50
using namespace std;
 
int main ()
{ char mas[n];
    FILE *f1;
    f1= fopen ("file.txt", "r");
    for (int i=0; i<n; i++)
     fscanf (f1, "%s", &mas[i]);
     cout << "File name";
     char s[10];
     cin >> s;
     ofstream out(s);
     for (int i=1; i<51; i++)
     {
     if( mas[i]!=' ')
     ifstream in(s);
     fprintf (f1,"%s", &mas[i]);
     }
      fclose (f1);
     cout <<s<< endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
Lenavev
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 17
12.05.2014, 20:52  [ТС] #4
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
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
#include "stdio.h"
 
using namespace std;
 
int main ()
{ int n= 20;char mas[n];
    FILE *f1;
      
    f1= fopen ("file.txt", "r");
    fscanf (f1, "%c", &mas[0]);
    n=0;
    while (mas[n]!='\0')
        {   n++ ; fscanf (f1, "%c", &mas[n]);  
        //  cout << mas[n];
          }
          fclose (f1);
          
     cout<<endl;
     cout << "File name";
     char s[10];
     cin >> s;
    f1=fopen (s, "wb");
    // cout << s;
     ifstream out(s);
     for (int i=1; i<21; i++)
     {
     if( mas[i]!=' ')
     
     ofstream in(s);
     fprintf (f1,"%c", &mas[i]);
     }
 
      fclose (f1);
    // cout <<s<< endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

_______________

переделала задачу, она работает но не совсем правильно , помогите исправить ошибки
0
Tripolis
1 / 1 / 1
Регистрация: 21.03.2013
Сообщений: 10
12.05.2014, 20:58 #5
Lenavev, оно точно не вылетает? У вас цикл как минимум неправильно написан.
C++
1
2
3
4
5
int n= 20;
char mas[n]; 
for (int i=1; i<21; i++)
{
if( mas[i]!=' ')
В С++ итерация массива идет с 0. Исправте на
C++
1
for (int i=0; i<20; i++)
0
zss
Модератор
Эксперт С++
6401 / 5967 / 1944
Регистрация: 18.12.2011
Сообщений: 15,367
Завершенные тесты: 1
12.05.2014, 21:09 #6
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main ()
{ 
   const int n= 100;
   char mas[n];
   ifstream f1("file.txt", ios::in);
   if(!f2)
   {
       cout<<"input file file.txt open error\n";
       system("PAUSE");
       return EXIT_SUCCESS;
   }
   cout << "Output File name:";
   char s[100];
   cin >> s;
   ofstream f2(s, ios::out);
   if(!f2)
   {
       cout<<"output file open error\n";
       system("PAUSE");
       return EXIT_SUCCESS;
   }
   while( f1>>mas) // в mas вводятся только слова без пробелов
         f2<<mas; // пишем mas в f2 и пробелы тю-тю 
   f1.fclose();
   f2.fclose();
   cout<<"Success!\n";    
   system("PAUSE");
   return EXIT_SUCCESS;
}
2
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 243
12.05.2014, 21:30 #7
zss, в 10 строке же должно быть f1
а в 28 и 29 не fclose, а просто close
2
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.05.2014, 22:10 #8
Цитата Сообщение от Vergil Посмотреть сообщение
в 10 строке же должно быть f1
а в 28 и 29 не fclose, а просто close
Вот до чего копипаста доводит.
zss, для ifstream режим открытия по умолчанию и так ios_base::in. Равно как и для ofstream - ios_base::out.
Закрывать файловые потоки явно тут вообще без надобности.
1
Lenavev
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 17
13.05.2014, 18:02  [ТС] #9
спасибо огромное)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2014, 18:02
Привет! Вот еще темы с ответами:

Убрать в переменной типа string пробелы - C++
Задача у меня такая. Пользователь вводит текст с консоли. 1.Удалить все пробелы и знаки препинания. 2. Очередную букву в цикле...

Как убрать указатели на пробелы и табы - C++
Помогите пожалуйста... У Меня следующая проблема: http://i60.***********/thumb/2013/0903/54/e1ea807dc1af483a58b8a883f6cac154.jpeg ...

Отфильтровать в файле пустые строки и убрать пробелы - C++
нужно создать программу фильтр. пустые строки и пробелы убрать. вот часть кода которая есть: #define _CRT_SECURE_NO_WARNINGS ...

В тексте убрать лишние пробелы и разделительные символы - C++
1. Определить какие символы и сколько раз встречаются в тексте. Или 2. В тексте убрать лишние пробелы и разделительные символы,...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
13.05.2014, 18:02
Ответ Создать тему
Опции темы

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