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

Переделать с файлами - C++

Восстановить пароль Регистрация
 
Nadin_
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 13
12.01.2011, 20:14     Переделать с файлами #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
#include <stdio.h>
#include <string.h> 
#include <conio.h>
#include <iostream.h>
#include<fstream.h>
int
main(void)
{  clrscr();
    int nsent;
    char s[4096],*p;
    char *delim = ".?!";
           int i;
    
        printf("Vvedite predloshenua: ");
    if(s[i] == NULL || s[i] == '\n')
            return 1;
 
   if(p == strrchr(s, '\n'))
        *p = '\0';
 
    nsent = 0;
    for( i=0;  i < strlen(s); i++) {
    if(s[i]=='.'||s[i]=='!'||s[i]=='?')
    nsent++;
 
    }
    printf("V texte %d predloshenuy.\n", nsent);
 
    return 0;
}
Переделать программу с файлами файл указать в командной строке

Добавлено через 12 минут
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
#include <stdio.h>
#include <string.h> 
#include <conio.h>
#include <iostream.h>
#include<fstream.h>
int
main(void)
{  clrscr();
    int nsent;
    char s[4096],*p;
    char *delim = ".?!";
           int i;
    ifstream ifs("H:\\FILE.txt");
    if(!ifs){cerr<<"file not found";getch();return 1;}
        printf("Vvedite predloshenua: ");
    if(s[i] == NULL || s[i] == '\n')
            return 1;
 
   if(p == strrchr(s, '\n'))
        *p = '\0';
 
    nsent = 0;
    for( i=0;  i < strlen(s); i++) {
    if(s[i]=='.'||s[i]=='!'||s[i]=='?')
    nsent++;
 
    }
    printf("V texte %d predloshenuy.\n", nsent);
 
    return 0;
    getch();
}
НЕ могу посмотреть результат.Что не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Эжен
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 7
13.01.2011, 00:28     Переделать с файлами #2
Цитата Сообщение от Nadin_ Посмотреть сообщение
Подсчитать количество предложений в файле
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 <stdio.h>
#include <string.h> 
#include <conio.h>
#include <iostream.h>
#include<fstream.h>
int nsent;
char s[4096],*p;
char *delim = ".?!";
int i=0,N;
intmain(void)
{  ifstream ifs(".:\\FILE.txt");
  if(!ifs){cerr<<"file not found";
getch();
return 1;}
 
nsent = 0;
while (!ifs.eof()) {ifs>>s[i];i++; N=N+strlen(s); }   
 if(p == strrchr(s, '\n'))
        p = '\0';
  for( i=0;  i <= N; i++) {
    if(s[i]=='.'||s[i]=='!'||s[i]=='?')
        nsent++;
}   printf("V texte %d predloshenuy.\n", nsent,"\n");
    return 0;
      getch();
}
так работает, если я правильно поняла задачу
Nadin_
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 13
13.01.2011, 01:09  [ТС]     Переделать с файлами #3
Не знаю у меня не верный результат получается(
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
13.01.2011, 01:40     Переделать с файлами #4
Если нужно результат вывести на экран и код написан правильно, то поменяйте строки 30 и 31 в своем коде (я про тот код, что добавлен чуть позже к сообщению) =)
--------------------------------------------------
Кстати, и зачем файл - чтобы считать из него строку, чтобы вывести в него строку или и то, и другое?
Nadin_
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 13
13.01.2011, 02:34  [ТС]     Переделать с файлами #5
Блин,чёт я протупила и это не рабочий код.

Добавлено через 26 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <fstream.h>
#include <ctype.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
 int main()
{
        int counter=0;
        char str[100];
        gets(str);
        
        for(int i=0;i<strlen(str);i++)
        {
                if (str[i]=='.'||str[i]=='!'||str[i]=='?')
                 ++counter;
        }
        cout<<"Number sentences: "<<counter<<endl;
        getch();
        return 0;
        }
Вот робочий с консоли а мне нужно с файла
Yandex
Объявления
13.01.2011, 02:34     Переделать с файлами
Ответ Создать тему
Опции темы

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