На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Масивы в С++
    Вопрос1.
    Почему выдает ошибку на такой код:

    FILE *newfile;
    char newbuf[10000];
    int i;
    .....-цикл
    fputs(newbuf[i], newfile);
    (писал еще так:
    fwrite(newbuf[i], 1, 1, newfile);
    та же ошибка)
    Пишет Can nоt convert int to char * Точно не помню но вроде так

    Пробовал такой код:
    fputs(&newbuf[i], newfile);
    Но тогда пишет в файл начиная с адреса &newbuf[i], и до конца масива(как обратится только к одной ячейки памяти)

    Вопрос 2.
    В начале програмы я нахожу число а. Теперь по этому числу мне нужно объявить масив размерности а как это правильно сделать? Я писал:
    ....нашел а
    int masiv[a];
    Ошибка - a required Что -то такое.
    А есть в С++ безразмерные масивы?
      Цитата
      Гость Yura, 16.12.03, 10:18
      как обратится только к одной ячейки памяти
      Т.е. вывести один символ? fputc
      Цитата
      Гость Yura, 16.12.03, 10:18
      Теперь по этому числу мне нужно объявить масив размерности а как это правильно сделать
      Например: int * massiv = new int[a];
      Цитата
      Гость Yura, 16.12.03, 10:18
      А есть в С++ безразмерные масивы
      Не в любом месте, но int massiv[];
      Сообщение отредактировано: trainer -
        а как сделать такое:
        в php есть такая операция masiv[]=.element;
        Мы этим добавляем в конец масива еще один елемент.
        В с++ такое как сделать?
          Тогда тебе лучше воспользоваться средствами стандартной библиотеки

          // Создаем массив целых чисел начального размера а и инициализируем его нулями
          std::vector<int> massiv(a, 0);
          // Добавляем элемент к массиву
          massiv.push_back(11);
          // и еще один
          massiv.push_back(12);
          // Теперь у нас в массиве 12 элементов. Первые 10 имеют значения 0, последние два - 11 и 12 соответственно.
          Сообщение отредактировано: Flex_Ferrum -
            Цитата
            Гость Yura, 16.12.03, 10:18
            Почему выдает ошибку на такой код:

            Посмотри вот такой пример из MSDN:
            #include <stdio.h>
            int main( void )
            {
               FILE *stream;
               char list[30];
               int  i, numread, numwritten;

               /* Open file in text mode: */
               if( (stream = fopen( "fread.out", "w+t" )) != NULL )
               {
                  for ( i = 0; i < 25; i++ )
                     list[i] = (char)('z' - i);
                  /* Write 25 characters to stream */
                  numwritten = fwrite( list, sizeof( char ), 25, stream );
                  printf( "Wrote %d items\n", numwritten );
                  fclose( stream );

               }
               else
                  printf( "Problem opening the file\n" );

               if( (stream = fopen( "fread.out", "r+t" )) != NULL )
               {
                  /* Attempt to read in 25 characters */
                  numread = fread( list, sizeof( char ), 25, stream );
                  printf( "Number of items read = %d\n", numread );
                  printf( "Contents of buffer = %.25s\n", list );
                  fclose( stream );
               }
               else
                  printf( "File could not be opened\n" );
            }
            Output
            Цитата
            Wrote 25 items
            Number of items read = 25
            Contents of buffer = zyxwvutsrqponmlkjihgfed
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0231 ]   [ 16 queries used ]   [ Generated: 3.05.24, 12:28 GMT ]