22 / 21 / 11
Регистрация: 08.04.2010
Сообщений: 90
1

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

01.12.2010, 09:08. Показов 1717. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите,пожалуйста,с задачами:
1. Перепишите в новый файл все строки, начинающиеся с заданного слова.
2. Создайте два выходных файла: в один перепишите из каждой строки первые k слов, в другой - оставшиеся. Если в строке меньше, чем k слов, то во втором файле соответствующая строка должна быть пустой.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2010, 09:08
Ответы с готовыми решениями:

Запишите во второй файл все строки первого файла, начинающиеся с заданного слова
Выполнить соответствующие операции с файлами. 8.1 Создайте текстовый файл. Запишите во второй файл...

Пусть дан текстовый файл. Распечатайте все строки, начинающиеся с заданного слова
Написать программу решающую поставленную задачу с помощью потока ввода-вывода в файлы в текстовом...

Запишите во второй файл все строки первого файла, начинающиеся с заданного слова
Помогите пожалуйста! Создайте текстовый файл. Запишите во второй файл все строки первого файла,...

Дан текстовый файл и слово. Выведите все строки файла, начинающиеся с заданного слова
Дан текстовый файл и слово. Выведите все строки файла, начинающиеся с заданного слова. ...

2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12453 / 7478 / 1752
Регистрация: 25.07.2009
Сообщений: 13,748
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) );
}
1
22 / 21 / 11
Регистрация: 08.04.2010
Сообщений: 90
02.12.2010, 21:14  [ТС] 3
Лучший ответ Сообщение было отмечено ol4ik как решение

Решение

не могли бы вы помочь мне разобраться,в чём ошибка?в первый файл записывает на слово меньше,чем надо,к тому же в одну строку

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;
}
0
02.12.2010, 21:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2010, 21:14
Помогаю со студенческими работами здесь

Дан текстовый файл. Перенести в новый файл все текстовые строки, не содержащие заданного слова.
нужна помощь. нужно написать на php это задание. я не знаю как. помогите пожалуйста, срочно. Вот...

Все слова, начинающиеся с гласных переписать в один файл, а с согласных – в другой новый файл
11. Все слова, начинающиеся с гласных переписать в один файл, а с согласных – в другой новый файл.

Все слова, начинающиеся с гласных переписать в один файл, а с согласных – в другой новый файл
Visual Studio Есть кусочек кода, который дает возможность создать 2 текстовых файла и заполнить 5...

Записать в новый файл все слова, начинающиеся с определенной буквы
Дан текстовый файл с текстом не менее 15 строк. Записать в новый файл все слова, начинающиеся с...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru