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

Запись и чтение в файл - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Hammersky
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 9
11.03.2012, 18:37     Запись и чтение в файл #1
Вариант 1
Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.

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

Вариант 3
Написать программу, которая считывает текст из файла и выводит на экран слова, начинающиеся с гласных букв.

Помогите с кодом

 Комментарий модератора 
На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск.
Правила форума
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 18:37     Запись и чтение в файл
Посмотрите здесь:

C++ Чтение запись в файл
[C++]Чтение и запись в файл C++
C++ Чтение и запись в файл
C++ Чтение и запись в файл
Чтение/запись в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
11.03.2012, 19:46     Запись и чтение в файл #2
ты бы хоть что - нибудь сам написал) где не понятно помогли бы)
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
11.03.2012, 20:02     Запись и чтение в файл #3
1-я:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <fstream>
#include <iostream>
#include <string>
 
void func1(std::istream &s, int max, int c = 0)
{
  if(c >= max || s.eof())
     return;
  std::string s1;
  std::getline(s, s1);  
  func1(s, max, c+1);
  std::cout << s1 << std::endl;
}
 
int main()
{  
  std::ifstream in("filename.txt");
  func1(in, 3);
  in.close();
}
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
11.03.2012, 21:03     Запись и чтение в файл #4
Цитата Сообщение от gooseim Посмотреть сообщение
1-я:
не работает
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
11.03.2012, 21:12     Запись и чтение в файл #5
Цитата Сообщение от programina Посмотреть сообщение
не работает
работает!
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
11.03.2012, 21:13     Запись и чтение в файл #6
Цитата Сообщение от Smillles7 Посмотреть сообщение
работает!
У меня компилится, но не работает
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
11.03.2012, 21:14     Запись и чтение в файл #7
Не флуди! все работает, это у тебя что -то!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
 using namespace std;
void func1(std::istream &s, int max, int c = 0)
{
  if(c >= max || s.eof())
     return;
  std::string s1;
  std::getline(s, s1);  
  func1(s, max, c+1);
  std::cout << s1 << std::endl;
}
 
int main()
{  
  std::ifstream in("filename.txt");
  func1(in, 3);
  in.close();
  system("pause");
}
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
11.03.2012, 21:19     Запись и чтение в файл #8
Цитата Сообщение от Smillles7 Посмотреть сообщение
Не флуди! все работает, это у тебя что -то!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
 using namespace std;
void func1(std::istream &s, int max, int c = 0)
{
  if(c >= max || s.eof())
     return;
  std::string s1;
  std::getline(s, s1);  
  func1(s, max, c+1);
  std::cout << s1 << std::endl;
}
 
int main()
{  
  std::ifstream in("filename.txt");
  func1(in, 3);
  in.close();
  system("pause");
}
Не работает, только первую строчку вниз смещает и всё
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
11.03.2012, 21:23     Запись и чтение в файл #9
вывести в обратном порядке 3 предложения это и есть сместить 1 строчку вниз!!!!!!!!!!
пример:
1
2
3
////////////
3
2
1
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
11.03.2012, 21:38     Запись и чтение в файл #10
Цитата Сообщение от Smillles7 Посмотреть сообщение
вывести в обратном порядке 3 предложения это и есть сместить 1 строчку вниз!!!!!!!!!!
пример:
1
2
3
////////////
3
2
1
Читаем внимательно:
Цитата Сообщение от Hammersky Посмотреть сообщение
Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.
Теперь берем три предложения из текстового файла.
Hammersky - автор темы. Smillles7 невнимательно читает. Programina - умничка.
Теперь пусть программа сделает вот так:
Programina - умничка. Smillles7 невнимательно читает. Hammersky - автор темы.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
11.03.2012, 21:57     Запись и чтение в файл #11
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
#include <vector>
#include <iostream>
#include <string>
#include <algorithm>
#include <fstream>
#include <iterator>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "");
    fstream fs;
    fs.open("in.txt", ios::in);
    if (!fs)
    {
        cerr << "Ошибка открытия файла!" << endl;
        return EXIT_FAILURE;
    }
 
    vector<string> lines;
    string line;
    while(getline(fs, line))
    {
        lines.push_back(line);
    }
 
    reverse_copy(lines.begin(), lines.end(), ostream_iterator<string> (cout, "\n"));
    return EXIT_SUCCESS;
}
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
11.03.2012, 22:02     Запись и чтение в файл #12
Тоже не работает, даже строчки не меняет
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
11.03.2012, 22:21     Запись и чтение в файл #13
все работает, строчки в файле:
аНаписать программу, которая считывает из текстового файла три предложения
На каждый вопрос создавайте по одной теме
Последний раз редактировалось easybudda

Запись и чтение в файл
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
11.03.2012, 22:39     Запись и чтение в файл #14
Умничка блин!
в Задании не сказано как будут разделяться предложения! я лично думал что 1 предложение это строчка! 2-е 2строчка и т.д
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
11.03.2012, 22:43     Запись и чтение в файл #15
Цитата Сообщение от Smillles7 Посмотреть сообщение
Умничка блин!
в Задании не сказано как будут разделяться предложения! я лично думал что 1 предложение это строчка! 2-е 2строчка и т.д
автор судя по всему не может правильно изложить, что не работает. я не телепат
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
11.03.2012, 22:45     Запись и чтение в файл #16
Да, я умничка. Вот зацените
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
//-------------------------------------------------------------
// Author:  programina
// Desc:    выводит предложения из файла в обратном
//      порядке, а не меняет строчки!!!
//-------------------------------------------------------------
#include <stdio.h>
#include <iostream>
 
 
int main()
{
    FILE * file;
    char c[512];
    int i = 0;
    int n[512];
    int m = 0;
    
 
    file = fopen( "file.txt", "r" );
    
    do 
    {
        c[i] = fgetc( file );   // читаем символ
        
        if ( c[i] == '.' )  // если символ точка, то
        {
            n[m] = i;   // запоминаем в массив
            m+=1;       // ее позицию
        }
        
        printf( "%c", c[i] );   // выводим предложения, что в файле
        
        i++;
    } 
    while( c[i] != EOF );       // пока не закончится файл
 
 
    printf( "%i \n", n[0] );    // позиции
    printf( "%i \n", n[1] );    // символов
    printf( "%i \n\n", n[2] );  // с точками (конец предложения)
    
    
    // выводим предложения в обратном порядке
    
    for ( i = n[1]+1; i < n[2]+1; i++ ) printf( "%c", c[i] );
    
    for ( i = n[0]+1; i < n[1]+1; i++ ) printf( "%c", c[i] );
    
    for ( i = -1; i < n[0]+1; i++ )     printf( "%c", c[i] );
    
 
    fclose( file );
    printf( "\n\n\n\t\t\t" );
    system("pause");
}
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
11.03.2012, 22:47     Запись и чтение в файл #17
Не работает
Пусть лучше автор скажет, как она должна работать))
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
11.03.2012, 22:59     Запись и чтение в файл #18
Цитата Сообщение от Smillles7 Посмотреть сообщение
Не работает
Пусть лучше автор скажет, как она должна работать))
Как должна работать? почитайте еще раз, что написал автор
Цитата Сообщение от Hammersky Посмотреть сообщение
Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.
Добавлено через 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
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
//-------------------------------------------------------------
// Author:  programina
// Desc:    выводит предложения из файла в обратном
//      порядке, а не меняет строчки!!!
//-------------------------------------------------------------
#include <stdio.h>
#include <iostream>
 
 
int main()
{
    FILE * file;
    char c[512];
    int i = 0;
    int n[512];
    int m = 0;
    
 
    file = fopen( "file.txt", "r" );
    
    printf( "Napisano v faile:\n\n" );
    
    do 
    {
        c[i] = fgetc( file );   // читаем символ
        
        if ( c[i] == '.' )  // если символ точка, то
        {
            n[m] = i;   // запоминаем в массив
            m+=1;       // ее позицию
        }
        
        printf( "%c", c[i] );   // выводим предложения, что в файле
        
        i++;
    } 
    while( c[i] != EOF );       // пока не закончится файл
 
 
    //printf( "%i \n", n[0] );  // позиции
    //printf( "%i \n", n[1] );  // символов
    //printf( "%i \n\n", n[2] );    // с точками (конец предложения)
    
    
    // выводим предложения в обратном порядке
    
    printf( "V obratnom poryadke:\n\n" );
    
    for ( i = n[1]+1; i < n[2]+1; i++ ) printf( "%c", c[i] );
    
    for ( i = n[0]+1; i < n[1]+1; i++ ) printf( "%c", c[i] );
    
    for ( i = -1; i < n[0]+1; i++ )     printf( "%c", c[i] );
    
 
    fclose( file );
    printf( "\n\n\n\n\n\n\n\n\n" );
    system("pause");
}
Миниатюры
Запись и чтение в файл  
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
11.03.2012, 23:04     Запись и чтение в файл #19
Требую медаль для programina!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 23:51     Запись и чтение в файл
Еще ссылки по теме:

Чтение и запись в файл C++
Чтение и запись в файл C++
C++ Чтение и запись в файл

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

Или воспользуйтесь поиском по форуму:
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.04.2012, 23:51     Запись и чтение в файл #20
Допилила программу, теперь можно выводить в обратном порядке не 3, а от 1 до 100500 предложений
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>
 
int main()
{
    char    c[1000000];
    int i   = 0;
    int n   = 0;
    int m   = 0;
    FILE*   file;   
    int a[256];
        
    file = fopen( "file.txt", "r" );        // Òåêñòîâûé ГґГ*éë Г± ïðåäëîæåГ*èÿìè
    
    while ( !feof( file ) )             // Г—ГЁГІГ*ГҐГ¬ äî ГЄГ®Г*Г¶Г* ГґГ*éëГ* ГЇГ® 1 ñèìâîëó
    {
        c[i] = fgetc ( file );          
        if ( c[i] == '.' ) { a[n] = i; n ++; }  // Åñëè ñèìâîë òî÷êГ*, ГІГ® Г§Г*ïîìèГ*Г*ГҐГ¬ ГҐГҐ Гў a[n]
        i ++;
    }
    fclose( file );                 // Г‡Г*êðûòèå ГґГ*éëГ*
    
    // Âûâîäèì ïðåäëîæåГ*ГЁГї Г± ïîñëåäГ*ГҐГЈГ® ГЇГ® âòîðîå
    for ( m = n - 2; m > -1; m-- ) {
        for ( i = a[m]+2; i < a[m+1]; i ++ ) { printf( "%c", c[i] ); }  
        printf( ".\n" );
    }
    
    // ÏîñëåäГ*ГЁГ¬ âûâîäèì ïåðâîå ïðåäëîæåГ*ГЁГҐ
    for ( i = 0; i < a[0]; i ++ ) { printf( "%c", c[i] ); } 
    printf( ".\n" );    
    
    // Âñ¸   
    getchar();
    return 0;
}
Yandex
Объявления
06.04.2012, 23:51     Запись и чтение в файл
Ответ Создать тему
Опции темы

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