[ 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. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Нет-нет, все верно. У автора вопроса переменная fbuf (то бишь 4-байтный указатель) объявляется в стеке, а в стеке память всегда представляет из себя мусор с рандомными значениями. А он даже не обнулил этот указатель, поэтому в нем и есть случайная величина.
     
  2. Ins3t

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

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    GRRRL Power
    хорошо, как для частного случая согласен.
     
  3. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    всем спасибо за дискусию :) я не совсем пропащий и знаю что это всеголишь указатель и туда не записать... просто для записи в файл думал нада, а оказывается любая строковая переменная пойдёт
     
  4. Nelz.

    Nelz. Member

    Joined:
    2 Aug 2010
    Messages:
    151
    Likes Received:
    7
    Reputations:
    0
    есть такой код на консоле как сунут это чудо вин форм с баттаном??

    Code:
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main () {
      ofstream myfile ("example.txt");
      if (myfile.is_open())
      {
        myfile << "This is a line.\n";
        myfile << "This is another line.\n";
        myfile.close();
      }
      else cout << "Unable to open file";
      return 0;
    }
    
     
  5. Ins3t

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

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    WinApi или нормальные фреймвеки. много способов есть.

    Но если вы задаете подобный вопрос - вам еще рано работать с гуи.
     
  6. Nelz.

    Nelz. Member

    Joined:
    2 Aug 2010
    Messages:
    151
    Likes Received:
    7
    Reputations:
    0
    что я знаю или незнаю и рано или поздно вас не касаеться! усек?

    задал нормалный вопрос жду нормального ответа...

    вопрос актуално
     
    #6266 Nelz., 28 Mar 2011
    Last edited: 28 Mar 2011
  7. Ins3t

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

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Да вы, батенька, хам. Сначала я написал "идите на***", но потом все же стер. Как то грубо вышло. Я даже шагнул дальше - сделал для вас пример. Но пример с использованием QT, поскольку не уважаю CLR.

    Code:
    #include <QApplication>
    #include <QPushButton>
    #include <fstream>
    
    int main( int argc, char *argv[] ) {
    	QApplication application( argc, argv );
    	QPushButton quitButton;
    	quitButton.resize( 75, 30 );
    
    	std::ofstream myfile ( "C:\\example.txt" );
    	if ( myfile.is_open() ) {
    		myfile << "Nelzone - idiot!.\n";
    		myfile << "Nelzone - idiot!.\n";
    		quitButton.setText( "All ok!" );
    		myfile.close();
    	}
    	else {
    		quitButton.setText( "Unable to open file" );
    	}
    
    	QObject::connect( &quitButton, SIGNAL( clicked() ), &application, SLOT( quit() ) );
    
    	quitButton.show();
    	return application.exec();
    }
    
    А теперь запомните: еще раз увижу ответ в подобном тоне - отхватите бан всерьёз и на долго.
     
    #6267 Ins3t, 28 Mar 2011
    Last edited: 28 Mar 2011
    2 people like this.
  8. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    помогите написать то же самое но только на Си

    PHP:
    <?рhр
    fоr 
    ($i 0$i 4$i++) {
        for (
    $j 0$j 4$j++) {
            if (
    $i == $j)
                echo 
    1;
            else {
                if(
    4-$i-1==$j)
                    echo 
    O;
                else {
                    if(
    0<$i && $i<4)
                    {
                     if(
    $j==0) echo 3;
                     if(
    $j==3) echo 4;
                    }
                    if(
    0<$j && $j<4)
                    {
                     if(
    $i==0) echo 2;
                     if(
    $i==3) echo 5;
                    }
                    
                }
            }
        }
        print 
    "\n";

     
  9. am@tory

    am@tory Elder - Старейшина

    Joined:
    8 Jan 2007
    Messages:
    65
    Likes Received:
    16
    Reputations:
    5
    Code:
    #include <iostream>
    using namespace std;
    
    int main()
    {
    for(int i = 0; i < 4; ++i)
    {
    	for(int j = 0; j < 4; ++j)
    	{
    		if(i==j)
    			cout << '1';
    		else
    	{
    		if(4-i-1==j)
    			cout << 'O';
    		else {
    		if(0<i && i<4)
    	{
    		if(j==0) cout << '3';
    		if(j==3) cout << '4';
    	}
    		if(0<j && j<4)
    	{
    		if(i==0) cout << '2';
    		if(i==3) cout << '5';
    	}
    }
    }
    }
    	cout << "\n";
    }
    }
    Вроде так =) 2й день с++ изучаю =) если что извиняй)
     
    #6269 am@tory, 29 Mar 2011
    Last edited: 29 Mar 2011
    1 person likes this.
  10. #andrew#

    #andrew# Elder - Старейшина

    Joined:
    24 Aug 2010
    Messages:
    45
    Likes Received:
    7
    Reputations:
    11
    Code:
    for (int i = 0; i < 4; i++){
        for (int j = 0; j < 4; j++){
            if (i == j)
                cout << 1;
            else {
                if(4-i-1==j)
                    cout << 0;
                else {
                    if(0<i && i<4)
                    {
                        if(j=) cout << 3;
                        if(j==3) cout << 4;
                    }
                    if(0<j && j<4)
                    {
                        if(i=) cout << 2;
                        if(i==3) cout << 5;
                    }
                }
            }
        }
        cout << "\n";
    
    вот так выглядит твой код на сишнике
     
  11. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    linux c

    Никак не могу довести до ума прогу где показывается работа с родителем и предком:
    Code:
    int main(int arge, char* argv[])
    {
    	pid_t pidn;
    	pidn=getpid();
    	printf("id процесса: %d\n",pidn);	
    	int i=0;
    	FILE *fd;
    	const char *filename="forkfile.txt";
    	errno=0;
    	int rv;
    	fd=fopen(filename,"a+");
    	if(errno)
    	{
    		perror("open");
    		return 1;
    	}
    	ssize_t nr;
    	char str[32];
    	convert(str,f(10));
    	nr=fwrite(str,sizeof(str),1,fd);
    	if(errno)
    	{
    		perror("write");
    		return 1;
    	}
    	fclose(fd);
    	pid_t pid;
    	pid=fork();
    	if(pid==(pid_t) 0)
    	{
    		FILE *nf;
    		const char *readfile="forkfile.txt";
    		nf=fopen(readfile,"r");
    		if(errno)
    		{
    			perror("fopen");
    			return 1;
    		}
    		pid_t pidp;
    		pidp=getppid();
    		printf("Потомок этого процесса: %d",pidp);
    		char buf[50];
    		ssize_t rf;
    		rf=fread(buf,sizeof(buf),1,nf);
    		if(rf==-1)
    		{
    			perror("fread");
    			return 1;
    		}
    		while(i<10)
    		{
    			printf("%s\n",buf);
    			i=i+1;
    		}
    		fclose(nf);
    		exit(rv);
    	}
    	else if(pid<(pid_t) 0)
    	{
    		perror("fork");
    		exit(1);
    	}
    	else
    	{
    		printf("Это процесс родитель!\n");
    	}
    	printf("PARENT: Код возврата потомка:%d\n",WEXITSTATUS(rv));
    	printf("%d\n",pid);
    	return 0;
    }
    
    Компилится без ошибок, и запускаю в терминале:
    Code:
    return-desktop lab3 # gcc fork.c -o fork -g
    return-desktop lab3 # ./fork
    id процесса: 2224
    Это процесс родитель!
    PARENT: Код возврата потомка:0
    2225
    return-desktop lab3 # Потомок этого процесса: 140.000000
    40.000000
    40.000000
    40.000000
    40.000000
    40.000000
    40.000000
    40.000000
    40.000000
    40.000000
    
    
    Собственно прога то работает и в основном выполняет то что нужно, но не пойму некоторые нюансы: 1) если начать с момента if(pid==(pid_t) 0) то почему идёт после это не дочерний процесс а попадает на printf("Это процесс родитель!\n") ? Ну тут то наверное понятно что pid=fork() возвращает пид процесса а не 0 в случае успеха и -1 в случае ошибки, но смотрел по примеру с oppennet.ru ... короче дилема какая то ; 2) строка printf("Потомок этого процесса: %d",pidp); выдаёт Потомок этого процесса: 140.000000 - ну тута я наверное с выводом накосячил, подскажите тогда как правильно.
     
  12. tim-oleksii

    tim-oleksii Member

    Joined:
    14 Mar 2011
    Messages:
    199
    Likes Received:
    10
    Reputations:
    0
    1) Так как создается два одинаковых процесса. у каждого свой pid. потому и ставится if/else
     
    #6272 tim-oleksii, 29 Mar 2011
    Last edited: 29 Mar 2011
  13. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Подскажите нормальный компилятор C/C++ под вин 7 х64!
    Сам я не дурак, нашел кучу компиляторов, но процентов 50 под х64 не идут, процентов 30 вообще не ставятся, а остальные 20% я так и не могу найти!
    пробовал
    Visual C++ 10 я версия период кончился, 6я не ставиться
    Bornald C++ не идет 5я и 6я версия
    Turbo C++ библиотеки не пашут, ставиться криво

    помогите, я уже два дня калупаюсь, ставить х32 не охота (
     
  14. Ins3t

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

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Intel C++ можно слить с торрента вместе с файлом лицензии.
     
  15. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    у меня такая проблема:

    [​IMG]

    короче библиотеки не видит (
     
  16. Nelz.

    Nelz. Member

    Joined:
    2 Aug 2010
    Messages:
    151
    Likes Received:
    7
    Reputations:
    0
    это что за среда?

    #include <stdio.h>
    #include <conio.h>
    int main ()
    {
    printf("123");
    return 0;
    }
     
    #6276 Nelz., 30 Mar 2011
    Last edited: 30 Mar 2011
  17. #andrew#

    #andrew# Elder - Старейшина

    Joined:
    24 Aug 2010
    Messages:
    45
    Likes Received:
    7
    Reputations:
    11
    у меня стоит VC 2010 и никакой период не кончается!!!дальше там в пуске будет консольный компилятор...->идешь в нужное место->пишешь cl имя_файла.срр->потом ехешник запускаешь!и все...скачай с торрента какого-нибудь!!!и не будет период никакой кончаться!!!у тебя вин7 какая?на ультиме все норм,и борландский робит!
     
  18. fen1xmv

    fen1xmv Member

    Joined:
    10 Feb 2011
    Messages:
    24
    Likes Received:
    6
    Reputations:
    0
    Там вроде как в опциях можно пути к библиотекам прописать.
     
  19. tim-oleksii

    tim-oleksii Member

    Joined:
    14 Mar 2011
    Messages:
    199
    Likes Received:
    10
    Reputations:
    0
    Старый досовский борланд.
     
  20. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Turbo C++
     
Thread Status:
Not open for further replies.