Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    marrow1

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    scai
     
    понимаю, но я не использую функцию fgets. Пробовал был раньше, но уже удалил. Ребилдил полностью проект по новой. поиском давал по всему проэкту также, fgets нигде нету. Тем более что компилирует программу нормально. Что же делать? Плиз.

    Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 23:02 05-04-2008
    susuman

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


    Цитата:
    scai  
     
    понимаю, но я не использую функцию fgets. Пробовал был раньше, но уже удалил. Ребилдил полностью проект по новой. поиском давал по всему проэкту также, fgets нигде нету. Тем более что компилирует программу нормально. Что же делать? Плиз.

     
    Во первых заверни имя файла  в CString:
    file.Open(CString("netcalc.txt"),CFile::modeRead);  
    LPCTSTR в данном случае не работает.
    Потом, надо проверить что возращает file.Open(...)  
    Как в мсдн:
    if( !f1.Open( pFileName, CFile::modeCreate
           | CFile::modeWrite | CFile::typeText ) ) {
       #ifdef _DEBUG
          afxDump << "Unable to open file" << "\n";
       #endif
       exit( 1 );
    }

    Всего записей: 12 | Зарегистр. 21-12-2005 | Отправлено: 00:07 06-04-2008
    mastaflow

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброго времени суток всем
    такой вопрос - буду писать змейку на MS VС++
    проблема в том, что препод сказал, чтобы не использовали классы и объекты..
    в борландс3.1 была и есть функция delay (в dos.h) - у нее есть аналог в студии и какой?
    соответственно нужно это для примерно такой реализации:
    while(1) {
        if(key = getch()) {
            changeDirection(key);
        }
        delay(200);
    }

    Всего записей: 24 | Зарегистр. 24-05-2007 | Отправлено: 00:28 06-04-2008
    susuman

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ещё добавлю:
    Эта ошибка в fgets (которая используестя в ReadString() )
    Возникает потому, что в неё передается FILE* str который NULL
    в случае любой ошибки при открытии файла ( не найден и т.п.)

    Всего записей: 12 | Зарегистр. 21-12-2005 | Отправлено: 00:32 06-04-2008
    marrow1

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    susuman

    Цитата:
    Во первых заверни имя файла  в CString:  
    file.Open(CString("netcalc.txt"),CFile::modeRead);  
    LPCTSTR в данном случае не работает.

     
    Спасибо. Уже идет без ошибки. А теперь как же мне вывести содердимое файла пользователю? Помогите плиз. Я этого добиваюсь от начала.

    Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 01:38 06-04-2008
    marrow1

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Считываю файл что мне нужно и размещаю в контрол Edit вот так:              
     
                            CString strBuffer;
                            char line[50];
     
            FILE *ff = fopen("netcalc.txt", "r");
            while (!feof(ff)){
                fgets( line, 50, ff );
            line[strlen(line)-1]=0;
            strBuffer+=line;
            }
            
            ed_4.SetWindowTextW(strBuffer);
            fclose(ff);
     
    только мне нужно чтобы каждая строка в Edit отображалась также отдельно как и в текстовом файле с которого я считываю. Как это сделать?

    Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 04:02 06-04-2008
    susuman

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    marrow1

    Цитата:
    только мне нужно чтобы каждая строка в Edit отображалась также отдельно как и в текстовом файле с которого я считываю. Как это сделать?

     
    Override функцию OnInitDialog (Class View, Properties, Override)
    все вместе будет так:
    BOOL EditDlg::OnInitDialog()
    {
        CDialog::OnInitDialog();
        // TODO:  Add extra initialization here
        CStdioFile file;  
        CString txt;
        if(file.Open(CString("netcalc.txt"),CFile::modeRead))
        {
            CString chank;
            while(file.ReadString(chank))
            {
                txt += chank;
                txt += '\r';
                txt += '\n';
            }
        }
        m_Edit3.SetWindowText(txt);
        return TRUE;  // return TRUE unless you set the focus to a control
        // EXCEPTION: OCX Property Pages should return FALSE
    }
     
    Этот Edit контрол должен иметь свойства Multiline и Vertical Scroll = true.
    Да это было в МФСи, но принцип тот же.  
    Кстатиб если можно использовать дот-нет, то там всё проще.
    M$ даже включил туда ReadLinesFromFile - типа мы не хуже юникса с его readlines
     
     
     
    Добавлено:
     
    mastaflow:

    Цитата:
    в борландс3.1 была и есть функция delay (в dos.h) - у нее есть аналог в студии и какой?  
    соответственно нужно это для примерно такой реализации:  

    в MS VC++ это Sleep:
     
    The Sleep function suspends the execution of the current thread for at least the specified interval.
    VOID Sleep(
      DWORD dwMilliseconds
    );
    --

    Всего записей: 12 | Зарегистр. 21-12-2005 | Отправлено: 06:20 06-04-2008 | Исправлено: susuman, 06:27 06-04-2008
    scai

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    marrow1
     
    А какая задача программы то?

    Всего записей: 9 | Зарегистр. 31-03-2008 | Отправлено: 11:55 06-04-2008
    marrow1

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    scai
    Программа разбивает заданнау компьютерную сеть на подсети (либо по количеству подсетей, либо по количеству компьютеров в подсети), это раз. А потом еще надо будет сгенерировать конфигурационные файлы маршрутизаторов с этими подсетями.

    Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 14:22 06-04-2008
    scai

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    О_о .. самому интресно на пргу взгянуть...

    Всего записей: 9 | Зарегистр. 31-03-2008 | Отправлено: 19:27 06-04-2008
    chintoi

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пожалуйста, помогите. Задача написать поиск в базе словаря. Пока все на ранней стадии, но я запоролся на считывании из файла, дальше сам справлюсь.
     
    Проблема: для считывания использую fgets и fscanf, и на них программа произвольно вылетает
     
    база выглядит так:
     
    index0.txt
    a
    <int адрес_на_список_слов_на_а_в_INDEX1>
    b
    <int адрес_на_список_слов_на_b_в_INDEX1>
    ...
     
     
    index1.txt
    apple
    <int адрес_перевода_apple_в_DATA>
    <int байт_перевода_apple_в_DATA>
    melon
    <int адрес_перевода_melon_в_DATA>
    <int байт_перевода_melon_в_DATA>
    ...
     
     
    код:
    void main()
    {
     long int pointer0, pointer1,entrysize;
     
     char *word, *match0, *match1, *entry, *tempstr;
     
     FILE *index0, *index1, *data;
     
     word="test";
     
     
     
    index0 = fopen("index0.txt", "r");
    while(!feof(index0))                        //для начала найти хоть совпадение первого символа в index0
        {
        fgets(match0,50,index0);
        if(word[0]==match0[0]){cout<<"OK!!";break;}
        }
    fscanf(index0,"%d",&pointer0);     //считываем, байтовый адрес в index0, начиная с которого слова начинаются на нужную букву
    fclose(index0);
     
     
     
    index1 = fopen("index1.txt", "r");
    fseek(index1, pointer0,SEEK_SET);        //выходим на этот адрес
    fgets(match1,79,index1);                       //считываем первое слово на заданную букву
    fscanf(index1,"%d",&pointer1);           //считываем, байтовый адрес в data, где начинается перевод  
    fscanf(index1,"%d",&entrysize);            //считываем, длину перевода  
    fclose(index1);                        
     
     
    //собственно, дальше дело не заходило
     
    // data = fopen("data.txt", "r");
    // fclose(data);
     
     
    printf("%s %d",match0,pointer0);
    printf("\n%s %d",match1,pointer1);
    getch();
    }
     
     
    Хотелось бы узнать в чем моя ошибка или узнать про альтернативыне функции

    Всего записей: 6 | Зарегистр. 07-04-2008 | Отправлено: 20:18 07-04-2008
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    chintoi

    Код:
    char *word, *match0, *match1, *entry, *tempstr;

    память под них выдели...
     
    да и
     
    word="test";
     
    на Сях как-то неприлично писать...
     
    strcpy(word, "test");

    Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 20:30 07-04-2008 | Исправлено: akaGM, 20:57 07-04-2008
    chintoi

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM
    Спасибо большое! По книжкам сложнее самообучение дается..

    Всего записей: 6 | Зарегистр. 07-04-2008 | Отправлено: 22:03 07-04-2008
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    chintoi

    Цитата:
    По книжкам сложнее самообучение дается..

    ага...
    только здесь вместо само тебямообучение происходит
    если происходит...

    Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 22:24 07-04-2008
    marrow1

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    еще есть вопросик. Как мне сделать чтобы мой текстовый файл в котором храняться подсчеты пользователь программы мог сохранить(т.е. я меня интересует как сделать функцию копирования уже существующего файла в файл с именем и путем который задаст пользователь, чтобы запрашивало куда сохранить файл)?

    Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 11:55 08-04-2008
    distance

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    marrow1
    в WinAPI есть функция CopyFile
    для C++ - открываешь (fopen/_open) первый файл на чтение, второй на запись и в цикле переносишь (fread/_read, fwrite/_write) блоки даных пока не будет достигнут конец (feof/_eof) первого файла.

    Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 13:40 08-04-2008
    nick7inc



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Не могу написать CallBack вызов с подстановкой объекта вместо функции.
    Вот код
    Компитятор GCC 3.4.2 выдаёт:
    main.cpp|54|error: cannot convert `A' to `void (*)(float&)' for argument `2' to `void f1(int, void (*)(float&))'|
    Подскажите, в чём дело. Спасибо.

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 17:44 08-04-2008
    Labutin



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Не помню где, но мне кажется, что я читал о том, что выполнение программы на C++ может начинаться не с функции main, а с любой другой, если при компиляции указать соответствующий ключ, в котором будет указано имя функции, с которой нужно начать выполнение программы. Это я брежу, или действительно так и есть? Если так и есть, то что там за ключик такой, скажем для компилятора в Visual Studio ?

    Всего записей: 935 | Зарегистр. 31-07-2001 | Отправлено: 18:50 08-04-2008
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Labutin

    Цитата:
    Не помню где, но мне кажется, что я читал о том, что выполнение программы на C++ может начинаться не с функции main, а с любой другой

    Может, но не всё так просто. На самом деле выполнение программы начинается с функции инициализации CRT, которая в свою очередь вызывает main (или WinMain). Если отказаться от использования в программе функций CRT, то можно и с другой функции программу начать. Для VS это ключ линкера /ENTRY.
    Советую почитать эту статью.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 19:32 08-04-2008
    nick7inc



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кажется понял, в чём здесь дело. Далее.
     
    Добавлено:
    По-видимому фокус проходит, если пользоваться шаблонами (For_each, к примеру).

    Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 19:40 08-04-2008
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru