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

Перепишите в новый файл все строки, начинающиеся с заданного слова - C++

Восстановить пароль Регистрация
 
ol4ik
 Аватар для ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
01.12.2010, 09:08     Перепишите в новый файл все строки, начинающиеся с заданного слова #1
Помогите,пожалуйста,с задачами:
1. Перепишите в новый файл все строки, начинающиеся с заданного слова.
2. Создайте два выходных файла: в один перепишите из каждой строки первые k слов, в другой - оставшиеся. Если в строке меньше, чем k слов, то во втором файле соответствующая строка должна быть пустой.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 09:08     Перепишите в новый файл все строки, начинающиеся с заданного слова
Посмотрите здесь:

C++ Распечатать все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву.
Дан текстовый файл. Вывести все слова, начинающиеся с заданной буквы C++
Обработка строк. Найти все слова, начинающиеся с заданного символа. C++
C++ Вывести в выходной файл все слова, начинающиеся на заданную букву, и их количество
C++ Дан символ 'C' (прописная латинская буква) и текстовый файл. Создать строковый файл, содержащий все слова из исходного файла, начинающиеся этой буквой
1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву 2. Определить номер слова в котором больше всего г C++
записать в новый файл сначала предложения, начинающиеся с тире, а затем все остальные C++
C++ Вывести все слова из строки, начинающиеся с определенной буквы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
01.12.2010, 10:20     Перепишите в новый файл все строки, начинающиеся с заданного слова #2
1.
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
int starts_from_word(const char * s, const char * w){
    int len;
    return ( strstr(s, w) == s && ( ispunct(*(s + (len = strlen(w)))) || isspace(*(s + len)) ) );
}
 
#define INPUT_NAME "in.txt"
#define OUTPUT_NAME "out.txt"
 
int main(void){
    FILE * fin, * fout;
    char buf[BUFSIZ], wrd[BUFSIZ];
    
    printf("First word: ");
    if ( scanf("%s", wrd) != 1 ){
        fprintf(stderr, "Wrong input!\n");
        exit(1);
    }
    
    if ( ( fin = fopen(INPUT_NAME, "r") ) == NULL ){
        fprintf(stderr, "Can't open input file!\n");
        exit(1);
    }
    if ( ( fout = fopen(OUTPUT_NAME, "w") ) == NULL ){
        fprintf(stderr, "Can't open output file!\n");
        fclose(fin);
        exit(1);
    }
    
    while ( fgets(buf, BUFSIZ, fin) ){
        if ( starts_from_word(buf, wrd) ){
            if ( fputs(buf, fout) == EOF ){
                fprintf(stderr, "Can't write to output file!\n");
                if ( fclose(fin) )
                    perror("fclose");
                if ( fclose(fout) )
                    perror("fclose");
                exit(1);
            }
        }
    }
    if ( ferror(fin) ){
        fprintf(stderr, "Can't read from input file!\n");
        if ( fclose(fin) )
            perror("fclose");
        if ( fclose(fout) )
            perror("fclose");
        exit(1);
    }
    
    printf("Done.\n");
    
    exit( fclose(fin) | fclose(fout) );
}
ol4ik
 Аватар для ol4ik
22 / 21 / 6
Регистрация: 08.04.2010
Сообщений: 90
02.12.2010, 21:14  [ТС]     Перепишите в новый файл все строки, начинающиеся с заданного слова #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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
 
using namespace std;
int main()
{   FILE *ex1,*ex2,*ex3;
    ex1=fopen("C://ex1.txt","r");
    ex2=fopen("C://ex2.txt","w");
    ex3=fopen("C://ex3.txt","w");
    int t=0,i;
    char s[256];
    cout<<"vvedite kol-vo slov ";
    cin>>t;
    if ((ex1=fopen("C://ex1.txt","r"))==0)
      cout<<"error";
    else
    {
    while (!feof(ex1))
    {unsigned int i;
     int n=0;
        fgets(s, 100, ex1);
        if (s[0]!=' ') n=1;
        for(i=0; i<=strlen(s); i++)
        {   if((s[i] == ' ')&&(s[i+1]!= ' ')) n++;
            if((s[i]!= ' ')&&(s[i+1] == ' ')) n++;
            if(n<=t)
            {  fputc(s[i], ex2);
            }
            else
                fputc(s[i], ex3);
        }
        if(n<= t)
          fputc('\n', ex2); 
          else
          fputc('\n', ex3);
    }}
    fclose(ex1);
    fclose(ex2);
    fclose(ex3);
    getch();
    return 0;
}
Yandex
Объявления
02.12.2010, 21:14     Перепишите в новый файл все строки, начинающиеся с заданного слова
Ответ Создать тему
Опции темы

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