Пятница, 26 Апреля 2024, 12:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Программирование » C/C++ » Вопрос-Ответ (C++) (Вопросы по С++ задаём здесь.)
Вопрос-Ответ (C++)
KornivalДата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1
The Witcher
Сейчас нет на сайте
Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
masb8ly-GCДата: Воскресенье, 15 Января 2012, 20:25 | Сообщение # 61
постоянный участник
Сейчас нет на сайте
Здравствуйте! Вопрос такого характера. Как прочитать текст из файла ровно до конца файла и не символом больше?

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
05142Дата: Воскресенье, 15 Января 2012, 20:41 | Сообщение # 62
постоянный участник
Сейчас нет на сайте
http://gcup.ru/forum/62-17210-298483-16-1319294116

mecinvader
masb8ly-GCДата: Воскресенье, 15 Января 2012, 20:48 | Сообщение # 63
постоянный участник
Сейчас нет на сайте
Благодарю! Стоило почитать...

Добавлено (15.01.2012, 20:48)
---------------------------------------------
Только вот в таком коде:

Code
    FILE *f;
  f=fopen("G:\\TQS\\1.txt", "r");
  fseek(f,0,SEEK_END);  
  size_t L = ftell(f);  
  fseek(f,0,SEEK_SET);  
  char* c = new char[L];  
  for(int i = 0; i<L; i++)  
  {  
          c[i] = fgetc(f);
    cout << c[i];
  }

В самом конце вывода появляются буквы "я" по количеству строк минус одна!


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
05142Дата: Воскресенье, 15 Января 2012, 21:01 | Сообщение # 64
постоянный участник
Сейчас нет на сайте
Да, я для себя этот способ немного подправил.

Code
char* readFile(const char* file_name) {
       char* s;
       FILE * in = fopen(file_name, "r" );
       fseek( in, 0, SEEK_END);
       size_t file_size = ftell( in ) + 1;
       s = new char[file_size];
       fseek( in, 0, SEEK_SET);
       fread(s, sizeof(char), file_size, in);
       s[file_size - 1] = '\0';
       return s;
}


mecinvader

Сообщение отредактировал 05142 - Воскресенье, 15 Января 2012, 21:28
masb8ly-GCДата: Воскресенье, 15 Января 2012, 21:11 | Сообщение # 65
постоянный участник
Сейчас нет на сайте
Теперь ругается на строчку return s, а если ее закоментить, то выдает тоже самое, только вместо "я" выдает "Н".

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
05142Дата: Воскресенье, 15 Января 2012, 21:28 | Сообщение # 66
постоянный участник
Сейчас нет на сайте
А ты вставляешь целую функцию или кусок кода?

mecinvader
masb8ly-GCДата: Воскресенье, 15 Января 2012, 21:33 | Сообщение # 67
постоянный участник
Сейчас нет на сайте
Вставил все, что вы написали... И отредактировал под себя!

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
AfutuiДата: Четверг, 19 Января 2012, 22:09 | Сообщение # 68
уже был
Сейчас нет на сайте
FC.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__MessageBoxA@16 в функции _WinMain@16
D:\tv\MFG\Debug\MFG.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
Как исправить?Пытаюсь запустить базовое окно HGE(черный экран) на VS2010.
код:
Code
#include "hge.h"  
       
  HGE *hge = 0;  

  bool FrameFunc()  
  {  
             
       if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;  

             
       return false;  
  }  

  int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)  
  {  
             
       hge = hgeCreate(HGE_VERSION);  

       hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);  

             
       hge->System_SetState(HGE_TITLE, "HGE Tutorial 01 - Minimal HGE application");  
             
             
       hge->System_SetState(HGE_WINDOWED, true);  

             
       hge->System_SetState(HGE_USESOUND, false);  

             
       if(hge->System_Initiate())  
       {  
              
        hge->System_Start();  
       }  
       else  
       {       
        MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);  
       }  

             
       hge->System_Shutdown();  
       hge->Release();  

       return 0;  
  }
ElsДата: Пятница, 20 Января 2012, 00:51 | Сообщение # 69
почетный гость
Сейчас нет на сайте
Пройдите по сылке и сделайте как там

Сообщение отредактировал Els - Пятница, 20 Января 2012, 00:53
RomanNVKZДата: Среда, 01 Февраля 2012, 14:23 | Сообщение # 70
участник
Сейчас нет на сайте
Расскажите, как можно решить проблему:
Переписываю мою "игру".

Есть класс strana в котором есть класс units с объявлением strana rus, usa;
Code

    class strana
{
public:
  int ID;
  int S;
  int un_kol;
  int peh;
  int tanks;
  int moskow_x;
  int moskow_y;
  class units
               {
               public:
                          int x, y;
               };
};

int main()
{
   strana rus, usa;
}


Как правильно объявлять индетификаторы вложенного класса и обращаться к нему как к обычному.
И можно ли придовать идентификаторы классам из массива строк?




RorschachДата: Среда, 01 Февраля 2012, 14:48 | Сообщение # 71
участник
Сейчас нет на сайте
Quote
Как правильно объявлять индетификаторы вложенного класса и обращаться к нему как к обычному.

strana::unints
Quote
И можно ли придовать идентификаторы классам из массива строк?

Не понял.


Never compromise. Not even in the face of Armageddon.
RomanNVKZДата: Среда, 01 Февраля 2012, 16:30 | Сообщение # 72
участник
Сейчас нет на сайте
Quote (Rorschach)
strana::unints

Намёк-то я понял.
Пример: если мы обычно обращаемся к классам как rus.( какя-нибудь переменная), то как обрашаться к элементу вложенного класса rus::units xx;
rus::xx.x, возможно ли вообще такое? Просто не могу продолжить проект без этого =(

Добавлено (01.02.2012, 16:30)
---------------------------------------------

Quote (RomanNVKZ)
Не понял.

Ну есть у нас массив строк word[2] = {"rus, "usa"}, можно ли заставить программу это считать и присвоить классам эти идентификаторы class rus, usa.




RorschachДата: Среда, 01 Февраля 2012, 16:47 | Сообщение # 73
участник
Сейчас нет на сайте
Quote

rus::units xx;
rus::xx.x, возможно ли вообще такое? Просто не могу продолжить проект без этого =(

Объявляешь так:
rus::units xx, а дальше работаешь как с любым другим классом, то есть xx.любая_переменная.
Внутри класса создай массив символов, и копируй туда из своего массива слов. Хотя хранить типы в строках - стремное решение.


Never compromise. Not even in the face of Armageddon.
RomanNVKZДата: Среда, 01 Февраля 2012, 17:00 | Сообщение # 74
участник
Сейчас нет на сайте
Quote (Rorschach)
rus::unit

В том то и проблема, что компилятор не даёт мне этого сделать... dry




mihas2Дата: Среда, 01 Февраля 2012, 17:22 | Сообщение # 75
UDK User
Сейчас нет на сайте
RomanNVKZ, зачем парить себе мозг? Используй наследование, а лучше измени структуру кода.

LaushДата: Четверг, 02 Февраля 2012, 14:48 | Сообщение # 76
почти ветеран
Сейчас нет на сайте
У меня microsoft Visual c++ 2006 ,он непонимает русский язык вроде,вот я пишу например программу Привет мир,а заместо русских слов пишет разнообразные символы,видимо выводит на экран только английские буквы
Можно ли это исправить? Ну в смысле что-бы по русский он понимал


[PC/Android/iOS/WEB] 30 Days to survive
[PC] Dead Defense
[PC] Саламандра - история пирата
ComentДата: Четверг, 02 Февраля 2012, 16:29 | Сообщение # 77
почетный гость
Сейчас нет на сайте
Вроде надо вставить :

setlocale(LC_ALL,"Russian")
LaushДата: Пятница, 03 Февраля 2012, 00:47 | Сообщение # 78
почти ветеран
Сейчас нет на сайте
А куда его вставлять? Обьясни новичку smile я его куда-то влепил выдает ошибки,менял местами всё ровно sad

[PC/Android/iOS/WEB] 30 Days to survive
[PC] Dead Defense
[PC] Саламандра - история пирата
RomanNVKZДата: Пятница, 03 Февраля 2012, 15:35 | Сообщение # 79
участник
Сейчас нет на сайте
Надпиши в инклюдах #include <clocale> а setlocale(LC_CTYPE, "Russian"); вставлять в int main()



LaushДата: Пятница, 03 Февраля 2012, 16:00 | Сообщение # 80
почти ветеран
Сейчас нет на сайте
Ясно

[PC/Android/iOS/WEB] 30 Days to survive
[PC] Dead Defense
[PC] Саламандра - история пирата
Форум игроделов » Программирование » C/C++ » Вопрос-Ответ (C++) (Вопросы по С++ задаём здесь.)
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг