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

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

Войти
Регистрация
Восстановить пароль
 
nite
10 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 18
#1

Файлы - C++

06.12.2009, 21:34. Просмотров 721. Ответов 13
Метки нет (Все метки)

Прошу помочь в написании программы: Исходный текстовый файл скопировать в результирующий текстовый файл, удалив слова менее N1 символов и более N2 символов. Разделители слов - любое количество пробелов. Спасибо.

Добавлено через 1 минуту
На Си.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2009, 21:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файлы (C++):

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними - C++
Всем добрый вечер!) Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как появился вопрос. Почему при объявлении...

Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы? - C++
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про графику, не смог добавить файлы .h и .cpp, скачав их с одной из...

Зачем нужно добавлять файлы в файлы исходного кода - C++
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как вызвать из main.cpp другой файл?

Заголовочные файлы и файлы cpp - C++
Со временем сложилось представление что при написании программ стоит разделять МЕТА данные и данные, но для лучшего понимания своих...

Раздельная компиляция: что помещать в заголовочные файлы, а что в файлы реализации (исходники)? - C++
Здравствуйте, я учусь пользоваться Visual Studio.Пишу программу, в которой создаются и разрушаются объекты, определенного пользователем...

нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) - C++
вот задание для программы: 6. Задан текстовый файл input.txt. Требуется определить строки этого файла, содержащие максимальную по длине...

13
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
06.12.2009, 21:41 #2
Цитата Сообщение от nite Посмотреть сообщение
Прошу помочь в написании программы: Исходный текстовый файл скопировать в результирующий текстовый файл, удалив слова менее N1 символов и более N2 символов. Разделители слов - любое количество пробелов. Спасибо.

Добавлено через 1 минуту
На Си.
есть такая функция замечательная:
char * strtok ( char * str, const char * delimiters );
она превращает строку вида.. ну вообщем вот пример:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
 
int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}
вот вывод:
Splitting string "- This, a sample string." into tokens:
This
a
sample
string
0
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 194
06.12.2009, 21:45 #3
ну читаешь из файла строку потом сразу пишешь ее в файл пословно(ну вообще будет посимвольно) короче идея такая что ты просто пропустишь слова не нужной длины....потом читаешь следущую строку и так далее доканца файла тобишь while(!feof)
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
06.12.2009, 22:00 #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
#include <stdio.h>
#include <string.h>
 
#define N1 5
#define N2 1
 
int main(void)
{
    FILE *ifp, *ofp;
    char word[4096];
    const char *ifname = "in.txt", *ofname = "out.txt";
    int wlen;
 
    ifp = fopen(ifname, "r");
    if(ifp == NULL || (ofp = fopen(ofname, "w")) == NULL) {
        perror("fopen");
        return 1;
    }
 
    while(fscanf(ifp, "%4095s", word) != EOF) {
        wlen = strlen(word);
        if(wlen < N1 && wlen > N2)
            continue;
        fprintf(ofp, "%s ", word);
    }
 
    fclose(ifp);
    fclose(ofp);
    return 0;
}
0
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 194
06.12.2009, 22:06 #5
скоее всего эта задача нужна тому кто только начал изучать си++ и скорее всего для каких-то лабараторных..поэтому наврятли такие функции им преподавали.хотя...кто знает
0
nite
10 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 18
06.12.2009, 23:15  [ТС] #6
спасибо. а что такое main(void)?

Добавлено через 1 минуту
salvafion, прав. только не си++ а си. но, с функциями постараюсь разобраться сам.

Добавлено через 43 минуты
Gravity, извините, чтото не удаляется ничего в вашем коде ( ??) но все равно спасибо.
0
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 194
08.12.2009, 21:37 #7
вместо int main (void) можно поставить void main() так как там получится одна функция и возвращать ни каких значений не нужно смотри поясняю алгорить в начале открываешь файл это fopen, после чего по циклу while(!feof) сканируешь строки функцией fgets(string- это строка в которую идет скнирование) помоему после чего можно новую функцию написать азятия слов ее алгоритм заключается в том что ты идешь до пробела и копируешь символы в какуюто переменную...после чего ты должен посмотрет сколько у тебя это словосимволов и сдвинуть указатель на это количество помоему вот так str=str+n точно не помню... str это указатель.
вот и так по циклу после взятия слова и проверки его на длину если оно подойдет то его в файл пишешь fprintf и все
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
08.12.2009, 21:41 #8
Цитата Сообщение от nite Посмотреть сообщение
Gravity, извините, чтото не удаляется ничего в вашем коде ( ??)
Все там удаляется, видимо у тебя карма отрицательная.
0
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 194
08.12.2009, 21:43 #9
Цитата Сообщение от Gravity Посмотреть сообщение
Все там удаляется, видимо у тебя карма отрицательная.
да причем тут карма, он же только учится ,вспомни себя....
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
08.12.2009, 21:46 #10
Цитата Сообщение от salvafion Посмотреть сообщение
да причем тут карма, он же только учится ,вспомни себя....
Когда дают готовый код и юзер даже его не может правильно запустить, это уже что-то другое...
0
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 194
08.12.2009, 21:48 #11
мож он в борланде каком нить работает....там такое бывает..особено с этими функциями
0
Gravity
563 / 557 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
08.12.2009, 21:49 #12
Какими "этими функциями"? Там все по стандарту.
0
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 194
08.12.2009, 21:54 #13
да вобщем не в этом суть...я про то что надо все объяснить человеку раз взялся помогать...хотяб коменты подписать
0
nite
10 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 18
09.12.2009, 00:56  [ТС] #14
всем спасибо! разобрался.
0
09.12.2009, 00:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2009, 00:56
Привет! Вот еще темы с ответами:

Файлы.Текстовые файлы - C++
Считая t текстовым файлом (файлом типа text), ответить на следующие вопросы: А)Кроме текстовых файлов,файлы какиъ еще типов могут...

Файлы - C++
#include &lt;iostream.h&gt; #include &lt;fstream.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; ...

Файлы в С - C++
Напишите, пожалуйста, программу для копирования содержимого одного файла в другой файл в обратном порядке (на С).

Файлы С++ - C++
как вывести на экран m последних строк из файла(с++) зарание спасибо))


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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