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

Файл на С++ - C++

Восстановить пароль Регистрация
 
Алмаз Валитов
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 18
16.05.2016, 19:11     Файл на С++ #1
перевести с паскаля на С++

Pascal
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
program vam116;
uses crt;
var f1, f2: text;
    s, rus, razd: string;
    r: boolean;
    i: integer;
begin
rus:= 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
razd:= ' .,!?;:';
  assign(f1, 'c:\File\input.txt');
  reset(f1);
  assign(f2, 'c:\File\output.txt');
  rewrite(f2);
  while not eof(f1) do
    begin
      readln(f1, s);
      r := false;
      for i := 1 to length(s) do
        begin
          if pos(s[i], razd) > 0 then break;
          r := pos(s[i], rus) > 0;
          if not r then break
        end;
      if r then writeln(s)
    end;
  close(f1);
  close(f2);
end.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SergioO
 Аватар для SergioO
89 / 178 / 61
Регистрация: 13.12.2015
Сообщений: 971
16.05.2016, 20:01     Файл на С++ #2
Алмаз Валитов, можете простым языком задачу сформулировать?
открываются два файла потом из одного читается, проверяется (что значит pos()?)
а дальше я чего-то не вижу чтобы во второй файл записывалось
Алмаз Валитов
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 18
16.05.2016, 21:13  [ТС]     Файл на С++ #3
Дан файл, состоящий из строк, которые могут начинаться либо с русских, либо с английских слов. Записать в другой файл, только те строки, которые начина-ся с русских слов.
SergioO
 Аватар для SergioO
89 / 178 / 61
Регистрация: 13.12.2015
Сообщений: 971
16.05.2016, 22:13     Файл на С++ #4
Алмаз Валитов,
Цитата Сообщение от Алмаз Валитов Посмотреть сообщение
которые начина-ся с русских слов
только начинаются или полностью состоят, тк начинаются с Большой буквы и причем тогда
Цитата Сообщение от Алмаз Валитов Посмотреть сообщение
razd:= ' .,!?;:';
Вам точно C++ надо? А то препод удивится
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
#include <string>
#include <iostream>
#include <fstream>
#include <cstdlib>
 
int main()
{
    setlocale(LC_ALL,"RUS"); // устанавливаем русский язык в консоле
    bool r = false; // зачем эта переменная?
    std::string LowAlphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
    std::string delimeter = " .,!?;:";
 
    std::ifstream ReadFileStream("C:\\File\\input.txt", std::ios::in); // открываем файл для чтения
    if (!ReadFileStream) // проверка что файл открылся
    {   std::cout << "Ошибка открытия фала input.txt \n";
        system("pause");
        return EXIT_FAILURE;
    }
    std::ofstream WriteFileStream("C:\\File\\output.txt", std::ios::out);  // открываем файл для записи
    if (!WriteFileStream) // проверка что файл открылся
    {   std::cout << "Ошибка открытия фала output.txt \n";
        return EXIT_FAILURE;
    }
 
    for (std::string s; ReadFileStream >> s; )  // читаем строку из файла
    {
        for (auto c : s)  // цикл прохождения по символам строки
        {
            if (delimeter.find(c) == std::string::npos) // условие, что в строке нет символов delimeter = " .,!?;:";
                if (LowAlphabet.find(c) != std::string::npos) WriteFileStream << s << std::endl; break;
            // условие, что в строке есть символы "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
            // если в строке русские символы есть, то печатаем ее в output.txt
        }
        
    }
    
    if (ReadFileStream.bad())  // ошибки чтения
        std::cout << "I/O error while reading\n";
    else if (ReadFileStream.eof())  // достигнут конец файла
        std::cout << "Достигнут конец входного файла\n";
    
    if (WriteFileStream.bad()) // ошибки записи
        std::cout << "I/O error while writing\n";
 
    // закрываем оба файла
    ReadFileStream.close();
    WriteFileStream.close();
 
    system("pause"); // ждем нажатия клавиши
    return 0;
    
}
честно сказать я так и не понял что требовалось
эту прогу (рабочая) доделайте.
Yandex
Объявления
16.05.2016, 22:13     Файл на С++
Ответ Создать тему
Опции темы

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