[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Как можно обрезать строку типа AnsiString до опредленного символа?
     
  2. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Чувак, я тебе дал код. Если тебе в падлу анализировать возвращаемые функцией значения и смотреть на каком шаге возникает ошибка, то используй его после вызова функций CreateProcess, WriteFile и CreatePipe.

    Code:
    LPVOID lpMsgBuf;
    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER |
        FORMAT_MESSAGE_FROM_SYSTEM |
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetLastError(),
        0,
        (LPTSTR) &lpMsgBuf,
        0,
        NULL
    );
    MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK | MB_ICONERROR);
    LocalFree(lpMsgBuf);
    На кой хер ты создаёшь директорию через пайпы и CMD? Что чистый WIN API религия не позволяет использовать?
     
  3. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    сделай заданный символ равным терминальному нулю 0x00, например:

    ...
    someAnsiBuf[5] = 0x00;
    ...
     
  4. 4y4o

    4y4o Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    40
    Likes Received:
    2
    Reputations:
    0
    Да папку создать это для примера просто. А вообще при WriteFile выдаёт неверный дескриптор. Но я как ты наверно понимаешь как всегда в шоке ))
     
  5. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Что после CreatePipe происходит? Какое сообщение?
     
  6. 4y4o

    4y4o Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    40
    Likes Received:
    2
    Reputations:
    0
    "Неверная попытка доступа к адресу памяти" :(
     
  7. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    secat.nLength = sizeof(SECURITY_ATTRIBUTES);
    secat.bInheritHandle = TRUE;
    secat.lpSecurityDescriptor = NULL;

    Что будет если так?
     
  8. VAMPIRE

    VAMPIRE Banned

    Joined:
    2 Oct 2005
    Messages:
    23
    Likes Received:
    2
    Reputations:
    0
    есть вопрос, типы бывают разные (int, double, float...), вот есть пустой тип void, в функцы все ясно для чего он нужен, а вот для параметрах толку от него какой? на пример:
    Code:
    void x;
    void *xPtr;
    пустые типы, не берут с памети не чего, а полза какава?

    **********

    Code:
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
    	FILE *FF;
    	const int MAX=1024;
    	int x,ch;
    	char a[MAX];
    	char FirstFileName[] = {"file1.txt"};
    	
    	/*printf("Insert text to first file : \n");
    	FF = fopen(FirstFileName,"w");
    	gets(a);
    	fputs(a,FF);
    	fclose(FF);
    	
    	printf("\nFirst file data is : \n");
    	FF = fopen(FirstFileName,"r");
    	fgets(a,MAX,FF);
    	printf("%s\n",a);
    	fclose(FF);*/
    	
    	printf("Insert text to first file : \n");
    	FF = fopen(FirstFileName,"w");
    	gets(a);
    	fwrite(a,sizeof(char),MAX,FF);
    	fclose(FF);
    	
    	printf("\nData in first file : \n");
    	FF = fopen(FirstFileName,"r");
    	fread(a,sizeof(char),MAX,FF);
    	printf("%s\n",a);
    	fclose(FF);
    		
    	getch();
    	
    	return 0;
    }
    Юзая fputs, и fgets все на ура, вот только юзая fwrite какаи то каляки в файле появляются.
    Code:
    Hello, Welcome to C programming language v$э"  рэ  эЩяпv0					   ‰   °,R   R					 Э  ”ь" ‰	 R °,R ”ь" рЉуv,‹уvн nv  R		 HR 	 Nv	( HR f dЭ   э" HR	 ё,R    јR    2 lR D F јR   нv	   @  @ё#R	 b	    f dД R 	   ё,R     , ё,R г ·,R І,R	 і,R	   R  ыјы" ыДя" 4˜нv)ї юяяя,‹уvR‡уv@  H  °,R	  @	 яяяя$ЊтvooPv	 @    4э" 		   @ pя"  @   @ Ђ	  ”Љтv,Ырvяяяя   °#R   R	 §ќ¦nHя"	    ,   , 	 R °#R	 рЉуv?   4ю"       зЈуv ,	 ,‹уvMўnv  ,	 Њ, H,	 ,   ,  H,	 ?	, H, 	 ,	 ђю" @†уv0, †уvйўnv	  , ,	 Љ  ЉД , ХўnvЁ#,	 0, H, Ё#,   , H,  ,    H, ?  ?? ‰?  ?	   , 	 ,    \э" , ? ‰   )ї Ё#, ,‹уvR‡уv      ,			 H, R‡уv, 0, ,		    ˜°э" h, ью" 4˜нvIї юяяя†уvR†уv	, ,	 рR Аю" oЕRv  ,	 ,  я" kќѕv  ,	 xќѕvАЇpє		рR 4цмМюяяяу¦ѕv;§ѕvФю"    Дя" µ$АvLНмМюяяяxќѕv®Ьїv, p, 8я"
    что это?? почему так?

    ЗЫ. сорри за плохой Русс язык, сам то не с Россий.
     
    1 person likes this.
  9. 4y4o

    4y4o Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    40
    Likes Received:
    2
    Reputations:
    0
    Теперь все операции успешно завершены, но папка не создалась, печаль... ))
     
  10. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    void не пустой тип. Он такой же тип как и все другие. Он эквивалентен одновременно всем типам. Просто он "безтиповый". Ты его можешь привести к любому типу. Он часто используется в задачах, когда неизвестно какой тип будет подаваться на входе... Например у тебя функция вывода чего-то... Если ты опишешь параметр как указатель на int, то это и ограничит тебя использованием int в параметрах... А если ты опишешь как указатель на void, то тут флаг тебе в руки - передавать можешь что угодно. Умей только правильно это обработать.

    fwrite(a,sizeof(char),strlen(a),FF)
     
  11. VAMPIRE

    VAMPIRE Banned

    Joined:
    2 Oct 2005
    Messages:
    23
    Likes Received:
    2
    Reputations:
    0
    поняно, спасибо вам.

    проблема с fwrite решына...

    Code:
    memset(a,0,sizeof(a));
     
    #2371 VAMPIRE, 17 Feb 2009
    Last edited: 17 Feb 2009
  12. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    А обязательно нужно определять позицию искомого символла в массиве?
    ЗЫ:что то я там ненахожу методов с названиями clear,free и т.д. :( Как же можно очистить буффер символов типа ansistring ?
     
    #2372 _nic, 17 Feb 2009
    Last edited: 17 Feb 2009
  13. Unregistered

    Unregistered Member

    Joined:
    15 Jan 2009
    Messages:
    24
    Likes Received:
    10
    Reputations:
    1
    Что это за программы: InterBase, VisiBroker. Стали вместе с Borland C++ Builder 6 Enterprise. Я смотрел, но ничего внятного для себя в доках не нашел. В универе начался полугодовой курс программирования. Т.е. основы. Так вот для тех целей, для моих целей они нужны?
     
  14. VAMPIRE

    VAMPIRE Banned

    Joined:
    2 Oct 2005
    Messages:
    23
    Likes Received:
    2
    Reputations:
    0
    InterBase : Relational data base management system , то есть управленям базы данных.
    VisiBroker : для работы с COBRA

    я не спец по Делфи, но тут думаю все ясно что, зачем, почему, и куда.
     
  15. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    VAMPIRE
    CORBA
     
  16. eiti

    eiti Elder - Старейшина

    Joined:
    8 Jul 2008
    Messages:
    60
    Likes Received:
    3
    Reputations:
    5
    напишите функцию print_out печатающую все целые числа в диапазоне от 1 до N. проверьте работу функции, поместив её в программу и передав ей число N - введенное с клавиатуры. возвращаемый тип функции print_out должен быть void; функция не возвращает значение.
    вот накорябал это
    #include "stdafx.h"
    #include <iostream>
    void print_out (int n);
    using namespace std;
    int main ()
    {
    int n ;
    cout << "enter number "; cin >> n;
    cout << "celye chisla do" << n << "-" << print_out (n) ;
    return 0;
    }
    void print_out (int n)
    {
    int i;
    for ( i=0; i<=n; i++)
    cout << i << ", ";
    }

    и получил ошибку в функции. где ошибка?
     
    #2376 eiti, 19 Feb 2009
    Last edited: 19 Feb 2009
  17. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    В ДНК, наверное... Где лог ошибок? :) Если тебе нужны качественно сделанные (НО ПЛАТНЫЕ) лабы - пиши в ПМ или аську. Если ты действительно хочешь разобраться с проблемой - покажи лог ошибок.
     
  18. eiti

    eiti Elder - Старейшина

    Joined:
    8 Jul 2008
    Messages:
    60
    Likes Received:
    3
    Reputations:
    5
    с 25 ошибками разобрался - перепутал << с >> ))
    осталась одна большая ошибка, ссылается на функцию
    Code:
    1>Компиляция...
    1>stdafx.cpp
    1>Компиляция...
    1>функция.cpp
    1>c:\users\eiti\documents\visual studio 2008\projects\функция\функция\функция.cpp(10) : error C2679: бинарный '<<': не найден оператор, принимающий правый операнд типа 'void' (или приемлемое преобразование отсутствует)
    1>        c:\vc\vc\include\ostream(653): может быть 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
    1>        with
    1>        [
    1>            _Elem=char,
    1>            _Traits=std::char_traits<char>
    1>        ]
    1>        c:\vc\vc\include\ostream(700): или       'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)'
    1>        with
     /////////////\вот тут очень большой лог и ачат ругается типа много картинок вставил///////////////
    1>            _Elem=char,
    1>            _Traits=std::char_traits<char>
     
    1>            _Elem=char,
    1>            _Traits=std::char_traits<char>
    1>        ]
    1>Журнал построения был сохранен в "file://c:\Users\eiti\Documents\Visual Studio 2008\Projects\функция\функция\Debug\BuildLog.htm"
    1>функция - ошибок 1, предупреждений 0
    ========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========
     
     
    #2378 eiti, 19 Feb 2009
    Last edited: 19 Feb 2009
  19. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    C какого байта стрелки направо завернуло? :)
     
  20. eiti

    eiti Elder - Старейшина

    Joined:
    8 Jul 2008
    Messages:
    60
    Likes Received:
    3
    Reputations:
    5
    это муки творчества ))
    уже 4ый час пытаюсь разобраться. код поправил, теперь ошибка одна. лог ошибки выше
     
Thread Status:
Not open for further replies.