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

Считать текст из файла и вывести на экран его предложения в обратном порядке - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Mr.Boss
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 10
04.06.2010, 13:12     Считать текст из файла и вывести на экран его предложения в обратном порядке #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
#include "stdafx.h"
#include "iostream"; 
#include "conio.h"; 
#include "stdio.h"; 
#include "math.h"; 
#include "fstream"; 
#include "cstring"; 
using namespace std; 
 
int main() 
{
int b,z,k,v,n,i,niz,ver,q,w; 
char str[12000],st1[12000]={""}; 
ifstream input("inp5.txt"); 
if(!input) {cout<<"!!!ERROR!!!"; return 1;} 
input.get(str,120); 
input.close(); 
int p,len=strlen(str),nach=0,kon,j;
for (j=nach;j<=len;j++) {
cout<<str[j];}
cout<<"\n";
cout<<"Predlozheniya v obratnom poryadke:";
cout<<"\n";
int nach1;
 
for (j=len; j>=nach; j--) { if ((str[j]=='.') || (str[j]=='?') || (str[j]=='!')) 
{kon=j;
for(p=kon; p>=nach; p--) { if ((str[p]=='.') || (str[p]=='?') || (str[p]=='!'))
{nach1=p+1;}
for(z=nach1;z<=kon;z++){cout<<str[z];}
}}
}len=nach1;
getch();
return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2010, 13:12     Считать текст из файла и вывести на экран его предложения в обратном порядке
Посмотрите здесь:

C++ Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке.
C++ Считать из текстового файла 3 предложения и вывести их в обратном порядке
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке C++
C++ Считать текст из файла и вывести на экран все его предложения в обратном порядке
Считать текст из файла и вывести все его предложения в обратном порядке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
04.06.2010, 13:48     Считать текст из файла и вывести на экран его предложения в обратном порядке #2
Особо не присматривался, но мне не нравится следующая строка
Цитата Сообщение от Mr.Boss Посмотреть сообщение
C++
1
input.get(str,120);
Не понимаю зачем выделять под строку char str[12000] такое количество элементов, если все равно читается всего 120 (get(str,120)).
Mr.Boss
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 10
04.06.2010, 14:20  [ТС]     Считать текст из файла и вывести на экран его предложения в обратном порядке #3
Не в этом проблема.
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
04.06.2010, 16:22     Считать текст из файла и вывести на экран его предложения в обратном порядке #4
оно у тебя только одно предложение печатает? с 33 строки нужно опять на 27 засылать с проверкой, и в цикле при проверке условия если нашли break; и передаем дальше циклу или какая ошибка?

Добавлено через 1 час 13 минут
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 <iostream>
#include <string>
#include <fstream>
using namespace std; 
 
int main() 
{
int b,z,k,v,n,i,niz,ver,q,w; 
char str[12000],st1[12000]={""}; 
ifstream input("inp5.txt"); 
if(!input) {cout<<"!!!ERROR!!!"; return 1;} 
input.get(str,1200); 
input.close(); 
int p,len=strlen(str),nach=0,kon,j;
for (j=nach;j<=len;j++) {
cout<<str[j];}
cout<<"\n";
cout<<"Predlozheniya v obratnom poryadke:";
cout<<"\n";
int nach1;
bool l=true;
while (l){ 
for (j=len; j>=nach; j--)  if ((str[j]=='.') || (str[j]=='?') || (str[j]=='!')) 
{kon=j-1; break;}
for(p=kon; p>=nach; p--)  if ((str[p]=='.') || (str[p]=='?') || (str[p]=='!'))
{nach1=p+1;  break;}
 
for(z=nach1;z<=kon+1;z++) cout<<str[z];
if (len==nach1) {l=false; for(z=0;z<=kon+1;z++) cout<<str[z];}
 
len=nach1;}
cin.get();
return 0; 
}
лови только "твоя" функция одну строку читает может так нужно не стал менять
Mr.Boss
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 10
05.06.2010, 12:41  [ТС]     Считать текст из файла и вывести на экран его предложения в обратном порядке #5
Спасибочки ограмноё! ТАк и надо было.

Добавлено через 18 часов 33 минуты
А как его же на C# сделать я во попытался, а язык не воспринемает некоторые переменные.

Добавлено через 32 секунды
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Лабораторная_работа__5
{
    class Program
    {
        static void Main(string[] args)
        {
 
 
   
int z,i;
 
string str;
 
System.IO.StreamReader file =
    new System.IO.StreamReader(@"E:\Програмирование Практика\C#\Лабораторная работа №5\inp.txt");
 
while ((str = file.ReadLine()) != null)
{
    Console.WriteLine("Ishodniy tekst:");
    System.Console.WriteLine(str);
    Console.WriteLine("\n");
    Console.WriteLine("Predlozheniya s zapyatimi:");
    int p;
    int len = str.Length;
    int nach = 0, kon, j, nach1;
    
    bool l = true;
    while (l)
    {
        for (j = len; j >= nach; j--) if ((str[j] == '.') || (str[j] == '?') || (str[j] == '!'))
            { kon = j - 1; break; }
        for (p = kon; p >= nach; p--) if ((str[p] == '.') || (str[p] == '?') || (str[p] == '!'))
            { nach1 = p + 1; break; }
 
        for (z = nach1; z <= kon + 1; z++) Console.WriteLine( str[z]);
        if (len == nach1) { l = false; for (z = 0; z <= kon + 1; z++) Console.WriteLine(str[z]); }
 
        len = nach1;
    }
 
}
Console.ReadKey();
}    
}
}
Yandex
Объявления
05.06.2010, 12:41     Считать текст из файла и вывести на экран его предложения в обратном порядке
Ответ Создать тему
Опции темы

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