Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 8
1

Текстовый файл

12.12.2010, 16:48. Показов 855. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток
была поставлена задача,а сам,к сожалению разобратся не могу ибо не имею и малейшегоп редставления с чего начинать.
Задача:Открыть заданый текстовый файл,и записать количество слов с одинаковым количеством букв в другой файл в виде:
Количество букв - количество слов с таким количеством букв

Всю задачу решить не прошу,ибо дальше будет сложнее и нужно понять самому
Подскажите синтаксис как открывать заданый файл ,считывать строку и считать количество букв в строке.
Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2010, 16:48
Ответы с готовыми решениями:

Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и...

Текстовый файл UTF-8 сохранить как текстовый файл ANSI
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как сделать это средствами...

Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла
Дано число k (&lt; 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл,...

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы...
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны...

10
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 8
14.12.2010, 18:52  [ТС] 2
Актуально..немогу досихпор разобратся
0
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 8
18.12.2010, 15:37  [ТС] 3
актуально
0
TECHNO
28 / 28 / 8
Регистрация: 04.11.2009
Сообщений: 366
18.12.2010, 17:40 4
Объясни: "Открыть заданый текстовый файл,и записать количество слов с одинаковым количеством букв в другой файл в виде:
Количество букв - количество слов с таким количеством букв"
0
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 8
18.12.2010, 18:12  [ТС] 5
К примеру в файле есть три слова
Дождь Снег Слякоть

результат обработки должен быть:
"
7 - 1
5 - 1
4 - 1

"
0
TECHNO
28 / 28 / 8
Регистрация: 04.11.2009
Сообщений: 366
18.12.2010, 22:13 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
34
35
36
37
38
39
40
#include <conio.h>
#include <stdio.h>
#include <string.h>
int main()
{
    char filename[20],st1[100],st2[100],*stbuf;
    puts("input name file:");
    gets(filename);
    FILE *f1=fopen(filename,"r");
    FILE *f2=fopen("buffer.txt","w");
    fscanf(f1,"%s",st1);
    strcpy(st2.st1);
    stbuf=strtok(st1," ");
    fclose(f1);
    int k=1;
    while (strptr != NULL)
    {
          stbuf=strtok(NULL," ");
          k++;
    }
    int *kolb = new int [k];
    int *pro  = new int [k];
    stbuf=strtok(st2," ");
    kolb[0]=strlen(stbuf);
    int j,i=0,d=0;
    while (strptr != NULL)
    {
          stbuf=strtok(NULL," ");
          i++;
          kolb[i]=strlen(stbuf);
    }
    for(i=0;i<k;i++)
    {
    kolb[i]=pro[i];
    for(j=k;j>i;j--)
    if(kolb[i]==kolb[j]) d++;
    if(d==0) fprintf(f2,"%d - 1\n",kolb[i]);
    if(d>0 && ) 
    {
            fprintf
Надо продумать алгоритм, как это сделать...
0
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 8
18.12.2010, 22:34  [ТС] 7
Спасибо огромное..сейчас буду разбиратся..
я пока с книгой только написал код для количества слов
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
#include <tchar.h>
#include "stdio.h"
#include "conio.h"
int main()
{
    FILE *fp = fopen("D:\\olol.txt","r");
    char mas[100];
    char *schet = mas;
    int i=0,n=0;
    if(fp==NULL)
    {
        printf("error");
        return 0;
    }
    while(!feof(fp))
    {
        fgetc(mas,100,fp);
        if(mas[i] == " ")
        n++;
    }
    printf("Kolichestvo slov = %d",n+1);
    fclose(fp);
    getch();
}
Но ещё много ньюансов..

Добавлено через 6 минут
Эм.Вопрос
а зачем в вашем коде открываем два потока?
0
TECHNO
28 / 28 / 8
Регистрация: 04.11.2009
Сообщений: 366
18.12.2010, 22:45 8
Можешь говорить со мной на "ты"
Я открыл два файла
Один - для считывания строки со словами
Второй - для вывода результатов
0
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 8
18.12.2010, 23:04  [ТС] 9
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
#include <tchar.h>
#include "stdio.h"
#include "conio.h"
 
int main()
{
    
    FILE *fp = fopen("D:\\olol.txt","r");
    char mas[100],n;
    int i=0,c=0;
    char *schet = mas;
    if(fp==NULL)
    {
        printf("error");
        return 0;
    }
    while((n=getc(fp))!=EOF)
    {
        i++;
        if(n == 32)
        c+=1;
    }
    printf("Kolichestvo slov = %d",c+1);
    fclose(fp);
    getch();
}
Исправил код.теперь действительно считает слова
но есть проблема.сделал кривым образом,найдя что код пустоты "32"
если поставить просто
C
1
n==" "
то не удаётся

Добавлено через 12 минут
Кажется понял уже как построить структуру,но нужна ещё одна подсказка как реализовать условие
"если предидущий считанный элемент-любая буква алфавита,а последующий буквой не является,тогда прибавить +1 к счётчику слов"
ибо задан текст где специально используется по несколько пробелов подряд ,чтоб запутать
0
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
19.12.2010, 00:12 10
Цитата Сообщение от Artnoiser Посмотреть сообщение
но есть проблема.сделал кривым образом,найдя что код пустоты "32"
если поставить просто
C
1
n==" "
то не удаётся
Используйте одинарные кавычки.
Сейчас вы сравниваете n с указателем на знак пробела, а не с самим пробелом.
0
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 8
19.12.2010, 17:31  [ТС] 11
Решил таки задачу.Коряво,но кому-то может и полезно будет
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
59
60
61
62
63
64
65
66
67
68
69
#include <tchar.h>
#include "stdio.h"
#include "conio.h"
 
int main()
{
        
        FILE *fp = fopen("D:\\wtf.txt","r");
        FILE *fp2 = fopen("D:\\rezultat.txt","w");
        char mas[600],alfavit[23]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','s','t','w','y','f','x','z'};
        int i=0,c=0,n=0,j=0,n1=0,kolb=0;
        int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0;
        int sum7=0,sum8=0;
        char *schet = mas;
        if(fp == NULL)
        {
                printf("error");
                return 0;
                getch();
        }
        while((mas[n]=getc(fp))!=EOF)
        {   
            if (mas[n]!=' ')
            {
            kolb+=1;
            }
            for (j=0;j<23;j++)
            {
                if(mas[n] == ' ' &&  mas[n-1]==alfavit[j])
            {
                c+=1;
                switch(kolb)
            {
                case 1:
                    sum1+=1;
                case 2:
                    sum2+=1;
                case 3:
                    sum3+=1;
                case 4:
                    sum4+=1;
                case 5:
                    sum5+=1;
                case 6:
                    sum6+=1;
                case 7:
                    sum7+=1;
                case 8:
                    sum8+=1;
            }
                kolb=0;
            }
            }
            n++;
        }
        fclose(fp);
        fopen("D:\\rezultat.txt","w");
        fprintf(fp2,"Kolichestvo slov = %d\n",c+1);
        fprintf(fp2,"1 bykv = %d\n",sum1);
        fprintf(fp2,"2 bykv = %d\n",sum2);
        fprintf(fp2,"3 bukv = %d\n",sum3);
        fprintf(fp2,"4 bukv = %d\n",sum4);
        fprintf(fp2,"5 bukv = %d\n",sum5);
        fprintf(fp2,"6 bukv = %d\n",sum6);
        fprintf(fp2,"7 bukv = %d\n",sum7);
        fprintf(fp2,"8 bukv = %d\n",sum8);
        fclose(fp2);
getch();
}
Считает количество букв в словах и количество самих слов и записывает в отдельный текстовый файл.
разделитель- пустое место.
0
19.12.2010, 17:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2010, 17:31
Помогаю со студенческими работами здесь

Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл согласно своему варианту. Dev C++
8)В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра.

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл...

Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый
Всем привет. Есть такая задачка: &quot;текстовый файл перевести в двоичный, а потом полученный двоичный...

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как...


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

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