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

Перевод кода из Delphi, работа с текстовым файлом - C++

Восстановить пароль Регистрация
 
Lara1
1 / 1 / 0
Регистрация: 15.10.2011
Сообщений: 20
08.10.2013, 15:59     Перевод кода из Delphi, работа с текстовым файлом #1
Помогите, пожалуйста, перевести готовую программу из Delphi на C++ Builder 6...
Я совсем замучилась, в с++ полный дуб, если циклы, условия еще могу перевести сама, то вот с работой с файлами(чтение, запись), ничего не выходит, искала по форумам везде по-разному пишут.

моя задача:

Файл содержит текст на русском языке. составить в алфавитном порядке список всех слов встречающихся в тексте и их количество


Прога на паскале:
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
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
program Project2;
uses
  SysUtils;
 
var s,sub:string;
    i,j,n:integer;
    a:array[1..100] of string;
    q:set of char;
    F : Text;
begin
 
Assign(F, '1.txt');
Reset(F);
n:=0;
q:=[' ' , ',' , '-' , '!' , '?' , ';' , ':' , '.'];
While not EoF(F) do
begin
Readln(F,s);
i:=0;
repeat
inc(i);
if (s[i] in q)and (sub<>'') then begin
                  inc(n);
                  a[n]:=sub;
                  sub:='';
                  end
else if not (s[i] in q) then sub:=sub+s[i];
until i=length(s);
end;
Close(F);
if sub <> '' then begin
                   inc(n);
                   a[n]:=sub;
                   end;
writeln;
for i:=1 to n-1 do
 for j:=n-1 downto i do
  if a[j]>a[j+1] then begin
                      sub:=a[j+1];
                      a[j+1]:=a[j];
                      a[j]:=sub;
                      end;
 
 Write('Количество слов: ',n);
 
 Assign(F,'2.txt');
rewrite(F);
for i:=1 to n do
 writeln(f,a[i]);
 close(f);
 
readln;
end.

Очень прошу помочь, у самой уже голова кругом, с ++ для меня как китайсткий язык(((
Большущее спасибо тем, кто поможет!

Добавлено через 1 час 17 минут
В общем, кое как я перевела программу сама, но она не работает. Во первых, не может записать слова в файл 2.txt, помогите исправить ошибку(((
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
using namespace std;
int main(int argc, char* argv[])
{
cout<<"Hello";
int i,j,n;
char s[100], sub[100];
char a[100];
ifstream F;     //открываем для чтения
F.open("1.txt", ios::in);
n=0;
char q[]={' ' , ',' , '-' , '!' , '?' , ';' , ':' , '.'};
 
while (!F.eof())
{
 F>>s;
 i=0;
 do
  { i++;
  if( s[i]=' '&& sub!=' ') //ТУТ НАЧИНАЕТ РУГАТЬСЯ, я не нашла аналога "in" пока оставила вместо массива q просто 
                               // пробел, если делаю sub просто char (без [100]) то вроде все ок
  {
   n++;
   a[n]=sub;
   sub=' ';
   } else
     { if (s[i]=' ') sub=sub+s[i];};
  }
  while( i= strlen(s));
F.close();
}
 
if (sub!=' ')
{
n++;
a[n]=sub;}
for (i=1; i<n-1;i++)
{ for (j=n-1; j>i, j--)
  {
   sub=a[j+1];
   a[j+1]=a[j];
   a[j]=sub;
  }
}
 
cout<<"Количество слов"<<n;
 
ofstream f;  //НАДО ЛИ??
f.open("2.txt", ios::out);  //записываем слова в файл
for (i=1; i<n; i++)
{
f.write(a[i]); //f<<a[i]<<"\t"; ну или как то так ТОЖЕ РУГАЕТСЯ, ГОВОРИТ НЕ может конвертировать int в char(((
}
 
f.close();
 
system("pause");
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 15:59     Перевод кода из Delphi, работа с текстовым файлом
Посмотрите здесь:

Работа с текстовым файлом C++
работа с текстовым файлом C++
Работа с текстовым файлом C++
C++ Работа с текстовым файлом
C++ работа с текстовым файлом
C++ Работа с текстовым файлом
C++ Работа с текстовым файлом
C++ Работа с текстовым файлом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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