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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
#1

Удалить из файла все лишние пробелы - C++

21.05.2011, 08:37. Просмотров 2920. Ответов 5
Метки нет (Все метки)

Добрый день помоги пожалуйста с задачами на файлы

1) Дан текстовой файл. Удалить из него все лишние пробелы, оставив между словами не более одного пробела. Результат поместить в новый файл.


2) Дан файл, содержащий текст и арифметические выражения вида a Q b, где Q — один из знаков +,—,*,/ . Выписать все арифметические выражения и вычислить их значения

Добавлено через 58 секунд
вот что то подобное пробовал написать но ругается на FILE* in, out;

C++
1
2
3
4
5
6
7
8
9
10
11
FILE* in, out;
in = fopen("input.txt","r");
out = fopen("output.txt","w");
char buf, buf2=' ';//buf2<>' ' тогда пробелы в начале файла не будет удалять
fscanf(in,"%c",&buf);
while (buf!=EOF)
{ if (buf==' ' && buf2==' ');
  else fprintf(out,"%c",buf);
  buf2=buf;
  fscanf(in,"%c",&buf);
}
fclose(in);fclose(out);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 08:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить из файла все лишние пробелы (C++):

Файл: Удалить из файла все однобуквенные слова и лишние пробелы. - C++
Дан символьный файл f. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть...

Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в файл g - C++
Здравствуйте! Возникла такая проблема, никак не могу докопаться до решения... Задание звучит так: &quot; Дан текстовый файл f. Слова в файле...

Удалить все лишние пробелы - C++
В чем ошибка? #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string s;

Задан текст, удалить в нём все лишние пробелы - C++
помогите :-|

Дана строка. Удалить из нее все лишние пробелы - C++
Дана строка. Удалить из нее все лишние пробелы, оставив между словами не более одного. Результат поместить в новую строку.

В символьной строке удалить все лишние подряд идущие пробелы. - C++
помогите пожалуйста написать программу:В символьной строке удалить все лишние подряд идущие пробелы.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
21.05.2011, 08:42 #2
C++
1
FILE *in,*out;
1
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
21.05.2011, 10:37  [ТС] #3
спасибо за совет заработало, только что то кивоватенько сделал видать. выводит до конца файла последнюю букву в последнем слове, а если пробелы стоят то ваше пустой файл
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
21.05.2011, 11:17 #4
В вашем коде разобраться не смог, вот простенький код, переносит текст из файла input.txt в output.txt, но без повторяющихся пробелов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main(){
    FILE *in=fopen("input.txt","r"),*out=fopen("output.txt","w");
    char c;
    bool repeat=false;   //повтор
    while(!feof(in)){  //пока не конец файла
        fscanf(in,"%c",&c);   //считываем символ
        if (c==' '&&repeat) continue; //если пробел повторяется, то считываем дальше
        if (c==' '&&!repeat) repeat=true;else repeat=false; //если символ-пробел, но до него нет других пробелов, булевской переменной присваиваем 1, иначе 0
        fprintf(out,"%c",c); //ложим в output.txt символ
    }
    return 0;
}
2
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
21.05.2011, 19:19  [ТС] #5
Премного благодарен
0
askurandrio
Заблокирован
07.04.2015, 07:12 #6
А так не проще?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
int main(){
    FILE *in=fopen("teht.txt","r"),*out=fopen("textmod.txt","w");
    char c;
    int a=0;   
    while(!feof(in)) //пока не конец файла
    {
        fscanf(in,"%c",&c);   //считываем символ
        if (c == ' ') 
        {   
            a++;
            if (a > 2) fprintf (out,"*",c); 
        } 
        else a=0;
        fprintf (out,"%c",c); 
    }
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2015, 07:12
Привет! Вот еще темы с ответами:

В символьной строке удалить все лишние подряд идущие пробелы. - C++
Помогите пожалуйста написать программу,Каким образом можно осуществить: В символьной строке удалить все лишние подряд идущие пробелы?

Удалить в каждой строке лишние пробелы; исходную информацию считать из текстового файла - C++
Пусть задано множество строк. Удалить в каждой строке лишние пробелы. Пробел считается лишним, если он 1) стоит в начале строки ...

Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела - C++
Дан текстовый файл. Удалить из него все лишние пробелы, оставив между словами не более одного пробела. Результат поместить в новый файл. ...

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


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

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

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