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

Чтение из файла. СИ++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
06.04.2012, 01:08     Чтение из файла. СИ++ #1
Вот само задание:

С помощью текстового редактора создать файл .... длина строки текста не должна превышать 70 символов. Файл должен иметь тип .dat
Программа должна уметь:

1) Выводить текст на экран
2) По нажатию произвольной клавиши - должна поочерёдно выделять слова с первой и последней одинаковой буквой
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
# include <stdio.h>
# include <iostream>
# include <conio.h>
# include <locale.h>
# include <stdlib.h>
# include <Windows.h>
using namespace std;
 
int main()
{
    system("color 1f");
    setlocale(LC_ALL,"Rus");
 
        FILE *file = fopen("input.dat","r+");
        
        char str[70];       
            while(!feof(file))
            {
                if(!fgets(str,70,file)) break;
                  puts(str);
            }
        
        cout<<"\n\n";
        
        fclose(file);
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pipets24
 Аватар для pipets24
9 / 9 / 2
Регистрация: 04.04.2012
Сообщений: 56
06.04.2012, 02:50     Чтение из файла. СИ++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include<stdio.h>
void main()
{
char str[80];
FILE *file = fopen("input.dat","r+");
size_t readed;
readed = fread(str, sizeof(char), 70, file)
for (int i = 0, i < readed, i++)
{
std::cout << str[i];
}
}
вывод текста на экран должен примерно так выглядеть, а остальным влом заниматься, больно уж геморойно
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
06.04.2012, 03:12     Чтение из файла. СИ++ #3
так строки то небось поболе 70 символов.
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
06.04.2012, 11:10  [ТС]     Чтение из файла. СИ++ #4
Цитата Сообщение от OstapBender Посмотреть сообщение
так строки то небось поболе 70 символов.
Это да, я вот и хочу правильно вывод сделать, например если слово не влезает - чтобы его переносило

Добавлено через 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
int main()
{ 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    system("color 1f");
 
    char str[80];
    FILE *file = fopen("input.dat","r+");
    size_t readed;
    while(!feof(file))
    {
    readed = fread(str, sizeof(char), 70, file);
    for (int i = 0; i < readed; i++)
        {
           if(i > 60 && str[i] == ' ')
              { cout<<"\n"; break; }
           else
              cout << str[i];
        }
    }
        getch();
        return 0;
}
Что-то типо такого не прокатывает

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>
# include <iostream>
# include <conio.h>
# include <locale.h>
# include <stdlib.h>
# include <Windows.h>
using namespace std;
 
int main()
{ 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    system("color 1f");
 
    char str[80];
    FILE *file = fopen("input.dat","r+");
    size_t readed;
    while(!feof(file))
    {
    readed = fread(str, sizeof(char), 70, file);
    for (int i = 0; i < readed; i++)
        {
           if(i > 65 && str[i] == ' ')
              {
                 cout<<"\n";
                 //for(int j = i; j < strlen(str); j++)
                    //str[j] = str[j+1]; 
                 
              }
           cout << str[i];
        }
    }
        getch();
        return 0;
}
поправил на это, переносит норм, теперь удалить бы пробелы с начала строки
pipets24
 Аватар для pipets24
9 / 9 / 2
Регистрация: 04.04.2012
Сообщений: 56
06.04.2012, 14:39     Чтение из файла. СИ++ #5
прошу прощенья, лажанул)) прочитал не внимательно задание и подумал что во всем файле не более 70 символов))
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
06.04.2012, 21:36  [ТС]     Чтение из файла. СИ++ #6
да вот в этом то и проблема(

я нагуглил какую-то функцию trim();
но честно не понял как ей пользоваться толком

Не подскажешь что надо сделать с выводом чтобы прога корректно текст выводила?
т.е. чтобы не было

aaa bbbb cc
c dd eeeeee
_ _ fffff
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
06.04.2012, 21:43     Чтение из файла. СИ++ #7
http://cplus-plus.ru/video-on-c-onli...is-v-fayl.html
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
06.04.2012, 21:51  [ТС]     Чтение из файла. СИ++ #8
Спасибо! Буду смотреть/учиться. Если будет непонятно то напишу в тему)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 22:29     Чтение из файла. СИ++
Еще ссылки по теме:

C++ Чтение из файла
Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. C++
Чтение файла с несколькими знаками конца файла C++

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

Или воспользуйтесь поиском по форуму:
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
06.04.2012, 22:29     Чтение из файла. СИ++ #9
!Андрей!, сделай чтение посимвольное. или читай fgets только заведомо больше длины макс строки.
Yandex
Объявления
06.04.2012, 22:29     Чтение из файла. СИ++
Ответ Создать тему
Опции темы

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