[ 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. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://www.roseindia.net/c-tutorials/c-dynamic-array.shtml
     
    _________________________
  2. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    Подскажите пожалуйста что не правильно в данном коде?
    PHP:
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>

    int main()
    {
        
    char str[10] ="hello";
        
    chartrd;
        
    trd = (char*) malloc(20);
        
    sprintf(trd[0], "%s"str);
        
    printf("%s",trd[0]);
        return 
    0;
    }
    Как в этоге чтобы из массива trd[0] на выход было hello :confused:
     
  3. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Code:
    #include <stdlib.h> 
    #include <stdio.h> 
    #include <string.h> 
    
    int main() 
    { 
        char str[10] ="hello"; 
        char* trd; 
    
        trd = (char*) malloc(20); 
        sprintf(trd, "%s", str); 
        printf("%s",trd); 
        return 0; 
    }  


    Code:
    int main() 
    { 
        int array[10];
        int counter;
    
        for(counter = 0; counter < 10; ++counter)
             array[counter] = counter;
    
        return 0;
    }  
    ...
     
  4. NetAng

    NetAng Member

    Joined:
    29 Dec 2010
    Messages:
    75
    Likes Received:
    12
    Reputations:
    5
    Как в функции seekg() установить позицию ((конец файла)-80 байт)?
     
  5. zdravstvyi

    zdravstvyi Banned

    Joined:
    14 Feb 2012
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    Помогите поприветствовать Мир! =/
    Литература - Джесс Либерти. C++ за 21 день.


    #include "iostream"
    using namespace std;

    int main()
    {
    cout << "Hello World!\n";
    return 0;
    }

    Добавил в Проект/Свойства/Компоновщик/Точка входа/ WinMain
    Модули загрузил.

    Ошибки
    1>LINK : error LNK2001: неразрешенный внешний символ "_WinMain"
    1>C:\Users\Nirvana\Documents\Visual Studio 2010\Projects\Hello\Hello world\Debug\Hello world.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

    Будьте так добры)
     
  6. NetAng

    NetAng Member

    Joined:
    29 Dec 2010
    Messages:
    75
    Likes Received:
    12
    Reputations:
    5
    не надо там ничего добавлять просто создаешь проект win32 console application и в исходник пишешь:
     
  7. zdravstvyi

    zdravstvyi Banned

    Joined:
    14 Feb 2012
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    Спасибо,работает,Мир поприветствовал)
    А если создать не консольное приложение.
    Проект win 32/Приложение Windows(пустой объект)
    От книги далеко нежелательно уходить,и так туго идёт. С Вашей помощь только.
    Возможно современную литературу посоветуете.
     
    1 person likes this.
  8. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    Так можешь еще поприветствовать, заодно совет по литературе :)

    Code:
    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE hi, HINSTANCE hInst,PSTR Cmd,int CmdShow)      
    {
    while (true)
    {
    if (MessageBox(0,"ты Будешь читать книги Стенли Липпмана?","Литература",MB_ICONINFORMATION|MB_YESNO)==IDYES)
    	{
    	MessageBox(0,"Молодец! )","Литература",MB_ICONINFORMATION);
    	break;
    	}
    }
    
    }
     
  9. NetAng

    NetAng Member

    Joined:
    29 Dec 2010
    Messages:
    75
    Likes Received:
    12
    Reputations:
    5
    C++ Для профессионалов
    Пока можешь просто под консоль попрограммировать, необязательно сразу окна затрагивать.
     
  10. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    Ins3t, спасибо!

    а как быть в данном случае с нагрузкой ЦП (от 15%), код:
    Code:
                char a[100000];
                ...
                i=0;
                bzero(a, 100000);
                while((mysql_row = mysql_fetch_row(res))) {
                    if(i!=0) strcat(a, ",");
                    strcat(a, mysql_row[4]);
                    ++i;
                }
    
                printf("%s\n", a);
    Я так понимаю у меня байты в пустую гоняются в цикле?
     
    #6990 TweakeR, 18 Feb 2012
    Last edited: 18 Feb 2012
  11. 1NtR0

    1NtR0 Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    235
    Likes Received:
    89
    Reputations:
    35
    Подскажите плз как в данном случаем передать struct по ссылке и вывести результат?

    Code:
    
    #include <iostream>
    #include <pthread.h>
    #include <string>
    #include <fstream>
    
    using namespace std;
    struct test {
        int a;
        int b;
    };
    void *print_message_function(void *arg) {
        // Как здесь вывести к примеру a из структуры полученной?
    }
    int main() {
        test myst={};
        myst.a=50;
        myst.b=100;
        pthread_t thread1;
    
        int  iret1;
        // Создаем поток и передает функции ссылку на структуру myst
        iret1 = pthread_create( &thread1, NULL, print_message_function, &myst);
        return 0;
    }
    
    
     
  12. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    по ссылке:
    Code:
    #include <iostream>
    
    struct Test
    {
    	int a;
    	int b;
    };
    
    void printStructure(Test &testStructureObject)
    {
    	std::cout << testStructureObject.a << ":"
    		      << testStructureObject.b << std::endl;
    }
    
    int main(int argc, char *argv[])
    {
    	Test testStructureObject = {1, 2};
    	printStructure(testStructureObject);
    
    	return 0;
    }
    по указателю:
    Code:
    #include <iostream>
    
    struct Test
    {
    	int a;
    	int b;
    };
    
    void printStructure(Test *testStructureObject)
    {
    	std::cout << testStructureObject->a << ":"
    		       << testStructureObject->b << std::endl;
    }
    
    int main(int argc, char *argv[])
    {
    	Test testStructureObject = {1, 2};
    	printStructure(&testStructureObject);
    
    	return 0;
    }
    
    Она принимает указатель, а не ссылку.

    Code:
    	file.seekg(0, std::ios::end);
    	int endOfFile = file.tellg();
    	file.seekg(endOfFile - 80);
     
  13. NetAng

    NetAng Member

    Joined:
    29 Dec 2010
    Messages:
    75
    Likes Received:
    12
    Reputations:
    5
    ....
     
    1 person likes this.
  14. NetAng

    NetAng Member

    Joined:
    29 Dec 2010
    Messages:
    75
    Likes Received:
    12
    Reputations:
    5
    Ins3t спс, я так делал тоже но оказывается seekg() сдвигает на побайтово а посимвольно и поэтому я просто поставил -125.
     
  15. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    в ANSI строках это не имеет занчения.
     
    #6995 Ins3t, 18 Feb 2012
    Last edited: 18 Feb 2012
    1 person likes this.
  16. NetAng

    NetAng Member

    Joined:
    29 Dec 2010
    Messages:
    75
    Likes Received:
    12
    Reputations:
    5
    GetLastError() = 32?

    Code:
    winFileData.cFileName = "87df79dsf9s8d7f.mp3";
    full_name = "The Forgotten SoulSwitch As It Seems 2012.mp3";
    if(MoveFile(winFileData.cFileName, full_name) == false){cout << GetLastError() << endl;}
    GetLastError() выдает 32, что MoveFile ненравиться? вконце full_name null-байт стоит

    я работал в бинарном режиме.
     
    #6996 NetAng, 18 Feb 2012
    Last edited: 18 Feb 2012
  17. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    ERROR_SHARING_VIOLATION
    32 (0x20)
    The process cannot access the file because it is being used by another process.
     
    1 person likes this.
  18. 1NtR0

    1NtR0 Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    235
    Likes Received:
    89
    Reputations:
    35
    Твой пример работает, спасибо. А вот мое не хочет почему-то

    Code:
    #include <iostream>
    #include <pthread.h>
    #include <string>
    #include <fstream>
    
    using namespace std;
    struct test {
        int a;
        int b;
    };
    void *print_message_function(test *qweasd) {
        cout << qweasd->a << endl;
    }
    int main() {
        test myst={};
        myst.a=50;
        myst.b=100;
        pthread_t thread1;
    
        int  iret1;
        
        iret1 = pthread_create( &thread1, NULL, print_message_function, &myst);
        return 0;
    }
    
    st.cpp: In function 'int main()':
    st.cpp:22: error: invalid conversion from 'void* (*)(test*)' to 'void* (*)(void*)'
    st.cpp:22: error: initializing argument 3 of 'int pthread_create(_opaque_pthread_t**, const pthread_attr_t*, void* (*)(void*), void*)'
     
  19. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    pthread_create принимает указатель на войд. перепиши как то так:

    Code:
    void *print_message_function(void *qweasd) {
        cout << reinterpret_cast<test*>(qweasd)->a << endl;
    
    	return 0;
    }
     
    1 person likes this.
  20. NetAng

    NetAng Member

    Joined:
    29 Dec 2010
    Messages:
    75
    Likes Received:
    12
    Reputations:
    5
    ах да совсем забыл закрывать файл после использования :) спасибо!
     
Thread Status:
Not open for further replies.