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

AnsiString - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.95
ZukoWEB
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 5
12.11.2010, 10:03     AnsiString #1
НЕ могли бы сказать, почему при считывании из файла в переменную типа AnsiString компилятор выдает ошибку???
вот код:
Код:


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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <fstream.h>
#include <iostream.h>
#include <string.h>
void main(){
int i;
AnsiString En[100];
AnsiString Ru[100];
AnsiString Tr;
ifstream enfile;
ifstream rufile;
enfile.open("en.txt");
rufile.open("ru.txt");
if(!enfile){cout<<"\n english file not found ";}
if(!rufile){cout<<"\n russian file not found ";}
while(!enfile.eof()){
        while(!rufile.eof()){
                for(i=0;i<100;i++){
                        enfile>>En[i];
                        rufile>>Ru[i];
                }
        }
}
int mainkey;
while(mainkey!=2){
        cout<<"\n 1:translate 2:exit ";
                cin>>mainkey;
                 if(mainkey==1){
                        cout<<"\n insert english words: ";
                                cin>>Tr;
                        for(i=0;i<100;i++){
                                if(Tr==En[i]){
                                        cout<<"\n translate: "<<Ru[i];
                                }
                        }
                 }
}
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2010, 10:03     AnsiString
Посмотрите здесь:

C++ Аналог AnsiString в Qt
Передача AnsiString по ссылке C++
AnsiString обуляет char C++
C++ работа с AnsiString
C++ Преобразование из AnsiString в Double
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
12.11.2010, 10:49     AnsiString #2
Т.к. ">>" не работает с AnsiString.

C++
1
enfile>>En[i].c_str();
или замени AnsiString на std::string.
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
12.11.2010, 10:53     AnsiString #3
желательно привести код ошибки
я думаю ifstream и остальные стандартные потоки не рассчитанные на AnsiString
для роботы с ими нужно использовать *char вместо AnsiString
ZukoWEB
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 5
12.11.2010, 14:28  [ТС]     AnsiString #4
Lerny спасибо, но переводчик теперь постоянно выводит только английские слова))))
Я пытаюсь осуществить простой переводчик: т.е. ввел слово - он тебе его перевод. Хочу сделать его визуальным, т.е. с использованием форм и различных графических компонентов.
До этого писал в консоли и использовал библиотеку string.h все работало нормально, но при визуальном он не воспринимает строковую переменную вообще никак.

после чего описывал структуру, но он не переводил вообще, вот пример кода:
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
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <fstream.h>
struct NewSTR;
struct NewSTR{
char Word[255];
};
class TTranslate{
public:
        NewSTR EnglishWord[100];
        NewSTR RussianWord[100];
        int n;char file[30];
        GetWords(int n,char file[30]);
        void Translate(int n, char TrWord[40]);
};
TTranslate::GetWords(int n, char file[30]){
int i=0;
ifstream GetFileWords;
ifstream GetRusWords;
GetRusWords.open("russian.txt");
        GetFileWords.open(file);
                if(!GetFileWords){cout<<"\n Error in reading file: "<<file; system("pause");exit(1);}
                while(!GetFileWords.eof()){
                        while(!GetRusWords.eof()){
                                for(i=0;i<n;i++){
                                GetFileWords>>EnglishWord[i].Word;
                                GetRusWords>>RussianWord[i].Word;
                                }
                        }
                }
GetFileWords.close();
GetRusWords.close();
}
void TTranslate::Translate(int n, char TrWord[40]){
int i=0;
for(i=0;i<n;i++){
        if(TrWord==EnglishWord[i+1].Word){
                cout<<"\n Translate: "<<RussianWord[i].Word;
        }
}
}
void main(){
char TRWORDS[40];
TTranslate TR;
char filename[30];
int mainkey;
TR.n=100;
cout<<"\n insert filename with english words: ";cin>>TR.file;
        TR.GetWords(TR.n,TR.file);
         while(mainkey!=2){
                cout<<"\n write operation: 1: Transalte 2:exit ";cin>>mainkey;
                if(mainkey==1){
                        cout<<"\n insert english word: ";cin>>TRWORDS;
                        TR.Translate(TR.n,TRWORDS);
                }
         }
system("pause");
}
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
12.11.2010, 14:56     AnsiString #5
Цитата Сообщение от ZukoWEB Посмотреть сообщение
До этого писал в консоли и использовал библиотеку string.h все работало нормально, но при визуальном он не воспринимает строковую переменную вообще никак
Эт как не воспринимает?
ZukoWEB
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 5
12.11.2010, 15:59  [ТС]     AnsiString #6
А вот как!))))
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <string.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
string a;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
}
//---------------------------------------------------------------------------
вот ошибка:
[C++ Error] Unit1.cpp(10): E2141 Declaration syntax error
[C++ Error] Unit1.cpp(21): E2451 Undefined symbol 'a'
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
12.11.2010, 16:41     AnsiString #7
C++
1
2
#include <string>
std::string a;
ZukoWEB
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 5
12.11.2010, 21:11  [ТС]     AnsiString #8
Не хочет выводиться в мемо, пишет что не может сконвертировать в ансистринг((( вот код
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
#include <vcl.h>
#pragma hdrstop
#include <string>
#include "Unit1.h"
 
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
std::string a="ëîëîëîëîëîëî";
 
Form1->Memo1->Text=a;
}
//---------------------------------------------------------------------------
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
12.11.2010, 21:14     AnsiString #9
Так вы ж переводите в AnsiString.
C++
1
Form1->Memo1->Text=a.c_str();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2010, 21:36     AnsiString
Еще ссылки по теме:

как считать из бинарного файла AnsiString(ifstream) C++
C++ Функция AnsiString.data()

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

Или воспользуйтесь поиском по форуму:
ZukoWEB
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 5
12.11.2010, 21:36  [ТС]     AnsiString #10
Все понял, спасибо огромное))
Yandex
Объявления
12.11.2010, 21:36     AnsiString
Ответ Создать тему
Опции темы

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