Пятница, 14 Мая 2021, 14:46

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Программирование » 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
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
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
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
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-2021 Рейтинг