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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
DiKo_RuS
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 32
#1

Программа, считывающая заданный текстовый файл и выводящая на экран, а также дописывающая в новую строку в конец этого файла... - C++

10.03.2011, 22:14. Просмотров 2323. Ответов 14
Метки нет (Все метки)

Написать программу, считывающую заданный текстовый файл (например, TEST.txt) и выводящую на экран, а также дописывающую в новую строку в конец этого файла:

Число двухбуквенных сочетаний из букв, следующих друг за другом в английском алфавите (например, "st").

p.s работаю в Microsoft Visual Studio 2010. Буду очень благодарен)

Добавлено через 47 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <stdio.h>
#include <ctype.h>
#include <iostream>
#include <conio.h>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 int i, k, n=0;
 char buff[100];
 char ch;
 FILE* f;
 f=fopen("TEST.txt","r+");
 k=fread (buff, sizeof(char), 100, f);
 for (i=0; i<k; i++)
дальше незнаю как делать(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2011, 22:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа, считывающая заданный текстовый файл и выводящая на экран, а также дописывающая в новую строку в конец этого файла... (C++):

Программа, считывающая файл построчно и выводящая на экран только строки, не содержащие двузначных чисел - C++
Нужно написать программу, которая считывает текст из файла и выводит на экран только те строки, не содержащие двузначных чисел. Оформить в...

Открыть заданный текстовый файл, найти в нем и вывести на экран самую короткую строку - C++
Открыть заданный текстовый файл, найти в нем и вывести на экран самую короткую строку. Что не так, подскажите, пожалуйста! #include...

Открыть заданный текстовый файл, найти в нем и вывести на экран самую длинную строку - C++
Открыть заданный текстовый файл, найти в нем и вывести на экран самую длинную строку. Имя файла должно передаваться в программу в виде...

Дана строка S и текстовый файл. Добавить строку S в начало и конец файла - C++
Дана строка S и текстовый файл. Добавить строку S в начало и конец файла.

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

Программа дописывающая файл на диск - C++
Помогите пожалуйста немного поправить код :cry: Условие: Напишите программу, которая дописывает в находящийся на диске F: файл...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
-=ЮрА=-
Заблокирован
Автор FAQ
11.03.2011, 12:59 #2
За последнюю строку у тебя очень непонятно написано, вот как понял твоё задание!
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
#include <stdio.h>
 
FILE * f;
char sBuf[1024];//В строку можно считать не более 1024 символов
char chl,chr;
int i;
 
void main()
{
    printf(">START OF PROGRAM\r\n");
    if(!(f = fopen("text.txt","rb+")))//rb+ расширенный доступ
        printf("file already open or not exist\r\n");
    else
    {
        fseek(f,0,SEEK_SET);
        printf("\tREADING FILE:\r\n");
        while(!feof(f))
        {
            fread(sBuf,1,1024,f);
            printf("%s",sBuf);
        }
        printf("WRITE STRING IN FILE\r\n");
        for(int i = 0;i < 26;i++)
        {
            chl = 'a' + i;
            chr = 'a' + i + 1;
            fwrite(&chl,1,1,f);
            fwrite(&chr,1,1,f);
            fwrite(&chr,1,1,f);
            fwrite(&chl,1,1,f);
            printf("%c%c%c%c",chl,chr,chr,chl);
        }
        fclose(f);
    }
}
1
DiKo_RuS
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 32
11.03.2011, 15:01  [ТС] #3
Там имелось в виду что число двухбуквенных буквосочетаний будет выводится как на экран, так и записываться в исходный файл.
0
-=ЮрА=-
Заблокирован
Автор FAQ
11.03.2011, 19:12 #4
Файл после работы проги смотрелн???Если хочешь сначала записать символы а потом считать весь файл то убери с 22-й по 32-й строки и вставь следующий код между 14-й и 15-й строками
C++
1
2
3
4
5
6
7
8
9
10
11
printf("WRITE STRING IN FILE\r\n");
fseek(f,0,SEEK_END);
                for(int i = 0;i < 26;i++)
                {
                        chl = 'a' + i;
                        chr = 'a' + i + 1;
                        fwrite(&chl,1,1,f);
                        fwrite(&chr,1,1,f);
                        fwrite(&chr,1,1,f);
                        fwrite(&chl,1,1,f);
                }
1
DiKo_RuS
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 32
11.03.2011, 21:43  [ТС] #5
странно, после открытия консоли она сразу закрывается, а в диалоговом окне пишет:" невозможно найти или открыть файл PDB "

Добавлено через 1 час 59 минут
так, я вместо void main поставил int main, и в самой конце дописал
C++
1
2
getch()
return 0;
после этого прога заработала, но вывела совершенно не то что нужно, а именно она просто вывела исходный текст, и все возможные комбинации буквосочетаний, хотя должна была вывести лишь число буквосочетаний которые встречаются в тексте.

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

Теперь сижу думаю где ошибка(
0
-=ЮрА=-
Заблокирован
Автор FAQ
11.03.2011, 21:49 #6
Закрой студию и удали из папки все файлы кроме cpp-шника программы если есть stdafx.h то его тоже оставь, потом открой cpp-шника программы и скомпилируй проект заново...Мне не нравятся не 2008 не 2010, как по мне лучше 6-ки ничего майкрос не сделал...
0
DiKo_RuS
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 32
11.03.2011, 22:49  [ТС] #7
таже фигня, походу нужно через int main решать

Добавлено через 2 минуты
И мне преподаватель сказал что желательно начинать, так как у меня в самом первом посте написано.

Добавлено через 38 минут
Я конечно точно не могу сказать, но скорее всего без разницы как писать int main или void main, суть от этого не изменится, а ответ почему то выдает в виде куче букв, а не одним числом.
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.03.2011, 09:23 #8
Чувак, ты своё задание читал, какое 1 число???О_оТебе что число прочитанных байт нужно???
Цитирую: "Написать программу, считывающую заданный текстовый файл (например, TEST.txt) и выводящую на экран, а также дописывающую в новую строку в конец этого файла:"

если надо через
C++
1
int main()
то вставь вконце тела main
C++
1
return 0;
УТОЧНИ ЗАДАНИЕ!!!Проанализировал функцию которую тебе твой перпод накидал, может тебе надо число сочетаний из символов твоего файла?
0
DiKo_RuS
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 32
12.03.2011, 10:56  [ТС] #9
Мне нужно число этих буквосочетаний,то-есть например будет такой текст файла: "ABjmgat CDhmgt st" то программа считавшая этой текст должна написать - 3, так как она нашла 3 буквосочетания AB, CD и st. Вроде теперь я все понятно объяснил)

Добавлено через 36 минут
И это же число нужно дописать, в текстовый файл.
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.03.2011, 14:41 #10
Ну теперь задание понятно, вечером жди, пока на работе завал...(((

Добавлено через 17 минут
Вот реализация, лови:
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
#include <stdio.h>
 
FILE * f;
char chl,chr;
long lPos;
int nCount;
 
void main()
{
    printf(">START OF PROGRAM\r\n");
    if(!(f = fopen("text.txt","rb+")))//rb+ Г°Г*ñøèðåГ*Г*ûé äîñòóï
        printf("file already open or not exist\r\n");
    else
    {
        nCount = 0;
        fseek(f,0,SEEK_SET);
        printf("\tREADING FILE:\r\n");
        while(!feof(f))
        {
            fread(&chl,1,1,f);
            fread(&chr,1,1,f);
            printf("%c%c",chl,chr);
            if(chr == chl + 1)
                nCount++;
        }
        lPos = ftell(f);
        printf("WRITE NUM OF LETTER COMBINATIONS IN FILE\r\n");
        fwrite(&nCount,1,sizeof(int),f);
        fseek(f,lPos,SEEK_SET);
        fread(&nCount,1,sizeof(int),f);
        printf("NUM OF LETTER COMBINATIONS : %d\r\n",nCount);
        fclose(f);
    }
}
1
-=ЮрА=-
Заблокирован
Автор FAQ
12.03.2011, 14:44 #11
Вот скриншот работы
0
Миниатюры
Программа, считывающая заданный текстовый файл и выводящая на экран, а также дописывающая в новую строку в конец этого файла...  
DiKo_RuS
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 32
12.03.2011, 15:01  [ТС] #12
Спасибо все работает, но почему то в текстовом файле дописывает только закорючки)
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.03.2011, 15:13 #13
Вот так вконце поменяй
C++
1
2
3
4
5
6
printf("WRITE NUM OF LETTER COMBINATIONS IN FILE\r\n");
        fprintf(f,"%d",nCount);
        fseek(f,lPos,SEEK_SET);
        fscanf(f,"%d",&nCount);
        printf("NUM OF LETTER COMBINATIONS : %d\r\n",nCount);
        fclose(f);
1
DiKo_RuS
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 32
12.03.2011, 15:33  [ТС] #14
Теперь все работает нормально, Спасибо)

Добавлено через 8 минут
А можешь написать, так чтобы она кроме цифры ничего больше на экран не выводила.
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.03.2011, 23:59 #15
По твоему вопросу в личке - закоменть или убери 22-ую строку (вот эту строчку
C++
1
printf("%c%c",chl,chr);
) в моей последней реализации

Добавлено через 1 час 55 минут
запиши 11-ую сточку вот так
C++
1
if((f = fopen("text.txt","rb+")))//rb+ расширенный доступ
и убери 12 с 13-й строки, тем самым уберёшь ветвь else
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2011, 23:59
Привет! Вот еще темы с ответами:

Дан текстовый файл. Вставить в начало файла его последнюю строку, а в конец первую строку. - Pascal
Помогите решить задание, заранее спасибо. Дан текстовый файл. Вставить в начало файла его последнюю строку, а в конец первую строку.

Открыть заданный текстовый файл и вывести на экран строку с заданным номером - C++ Builder
Задание: Нужно открыть заданный текстовый файл и вывести на экран строку с заданным номером Имя файла и номер строки должны передаваться...

Дана строка S и текстовый файл. Добавить строку S в конец файла - C#
Дана строка S и текстовый файл. Добавить строку S в конец файла.

Дана строка S и текстовый файл. Добавить строку S в начало и конец файла - Pascal ABC
Помогите решить данную задачу. Дана строка S и текстовый файл. Добавить строку S в начало конец файла


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

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

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