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

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Code:
    #include <stdio.h>
    
    main()
    {
    	int c, nl, t, space, n, i, l;
    	int array[100];
    	nl = c = t = space = n = 0;
    	
    	
    	for (i = 0; i < 100; ++i) {
    		array[i] = 0;
    	}
    	
    	i = 0;
    	while ((c = getchar()) != EOF) {
    		if (c = '\n') {
    			printf("\n\tSymbol: ");
    			for (l = 0; l < i; ++l) {
    				printf("%d ", array[l]);
    			}
    			printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
    			break;
    		}
    		else if (c = '\t') {
    			++t;
    		}
    		else if (c = ' ') {
    			++space;
    		}
    		else if (c >= '0' && c <= '9') {
    			++n;
    		}
    		else {
    			array[i] = c;
    			++i;
    		}
    	}
    }
    			
    Все открылся нормлально. Открывал с помощью блокнота, а в FreeBSD узал ee редактор.
    Может ксе так кто нибудь поможет найти ошибку?

    p.s. сразу говорю узаю компилятор cc на крайний случай могу попробывать gcc.
     
  2. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Я не совсем понял что этот код делает. Что тебе нужно, считать сколь букв, цифр символов табуляции и новой строке, есть в строке?
     
    #1162 z01b, 11 Jun 2008
    Last edited: 11 Jun 2008
  3. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    ггг, процедур, как насчет того, чтобы внутри ифа поставить сравнение, а не присваивание?
    Code:
    if (c [COLOR=Red]==[/COLOR] '\n') {
    
    и т.д.
     
  4. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Chuvaki pishu s brausera lynx, ppc. Spasibo bolshoe vse rabotaet. Scha zaidu s norm brausera + kinu. =)
     
  5. Sirob

    Sirob New Member

    Joined:
    7 Jun 2008
    Messages:
    11
    Likes Received:
    2
    Reputations:
    0
    Подскажите, пожалуйста, как создавать файл в текущей директории. Пробовал GetCurrentDir, но что то с типами переменных не выходит - char- Ansi + знак "\" надо два раза указывать. Пока юзаю стандартную процедуру.
    Но хотелось бы
    1. Выдается окно SaveDialog в текущей директории.
    2. Файл без запроса создается в текущей директории.
     
  6. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    >> Подскажите, пожалуйста, как создавать файл в текущей директории.
    Просто без указания полного пути. Только имя файла. Будет создан в дирректории запуска программы.
     
  7. Sirob

    Sirob New Member

    Joined:
    7 Jun 2008
    Messages:
    11
    Likes Received:
    2
    Reputations:
    0
    .Slip, спасибо. Попробую.
    Программку пишу _http://ifolder.ru/6903178 Стоит ее постить на ачате (есть на граббе и асечке)? Если да, то в каком разделе?
     
  8. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    >> Подскажите, пожалуйста, как создавать файл в текущей директории
    fopen("filename", "wb"); уже не катит?
     
  9. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Погляди какая у тебя текущая директория (GetCurrentDirectory) после запуска экзешника. Если всё нормально запускаешь, то вызов fopen должен создавать файл в текущей директории... Или покажи весь исходник... Если запускаешь из под студии, то там текущая директория будет не директория экзешника, а директория проекта... В общем побольше описалова скинь, или исходник покажи...
     
  10. Sirob

    Sirob New Member

    Joined:
    7 Jun 2008
    Messages:
    11
    Likes Received:
    2
    Reputations:
    0
    groundhog Пишу на C++Builder 6.0. Домой приду - попробую что насоветовали. Останутся вопросы - позадаю. Спасибо.
     
  11. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Code:
     BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen()
                     CHAR *szUrl,        // Full URL
                     CHAR *szFileName)   // Local file name
       {
           DWORD dwSize;
           CHAR   szHead[] = "Accept: */*\r\n\r\n";
           VOID * szTemp[25];
           HINTERNET  hConnect;
          FILE * pFile;
    
           if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead,
                 lstrlen (szHead), INTERNET_FLAG_DONT_CACHE, 0)))
           {
             cerr << "Error !" << endl;
               return 0;
           }
    
           if  ( !(pFile = fopen (szFileName, "wb" ) ) )
          {
               cerr << "Error !" << endl;
              return FALSE;
          }
           do
           {
              // Keep coping in 25 bytes chunks, while file has any data left.
              // Note: bigger buffer will greatly improve performance.
              if (!InternetReadFile (hConnect, szTemp, 50,  &dwSize) )
              {
                  fclose (pFile);
                 cerr << "Error !" << endl;
                return FALSE;
              }
              if (!dwSize)
                  break;  // Condition of dwSize=0 indicate EOF. Stop.
              else
                 fwrite(szTemp, sizeof (char), dwSize , pFile);
           }   // do
          while (TRUE);
          fflush (pFile);
          fclose (pFile);
          return TRUE;
       }
    Чуваки, у меня вывод в поле Symbol: в цифрах, я так понял в кодах ANSI. А можно ли сделать чтоб вывод был в символах которые я ввел?
     
  12. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    strstr(kod_procedure,"Symbol") дает NULL! :cool:
     
  13. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Мдее... я для примера тебе дал. Дальше меняй сам, как тебе нужно.
     
  14. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Code:
    #include <stdio.h>
    
    main()
    {
    	int c, nl, t, space, n, i, l;
    	int array[100];
    	nl = c = t = space = n = 0;
    	
    	
    	for (i = 0; i < 100; ++i) {
    		array[i] = 0;
    	}
    	
    	i = 0;
    	while ((c = getchar()) != EOF) {
    		if (c = '\n') {
    			printf("\n\tSymbol: ");
    			for (l = 0; l < i; ++l) {
    				printf("%d ", array[l]);
    			}
    			printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
    			break;
    		}
    		else if (c = '\t') {
    			++t;
    		}
    		else if (c = ' ') {
    			++space;
    		}
    		else if (c >= '0' && c <= '9') {
    			++n;
    		}
    		else {
    			array[i] = c;
    			++i;
    		}
    	}
    }
    	
    БЛин чуваки я дурак, не тот код скопировал. В этом подскажите пожалуйста в чем может быть проблема. После Symbol: выдаются цифры вместо букв.
     
  15. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    ps

    ... переделай на char array[100];

    но самой главное что ты массив и не заполняешь!!!!
     
  16. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    procedure, я тебя уже спросил, что ты от кода ждешь????
     
  17. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    z01b-> когда я только дошел до циклов в книге, у меня была задачка скопировать входной поток в выходной с фильтрацией символов. Я ее так и не смог не применяя функций (кроме getchar) и массивов решить, сейчас хотяб так постараюсь решить. Только не помогайте чуваки плиз, если что я вопрос сам задам. Я хочу сам сделать)))
    Потом постепенно буду добавлять в эту задачку новые упражнния усложняя ее все более и более.
     
  18. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    дебагером учись пользоваться , сразу увидишь механику ИЗНУТРИ!
     
  19. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    еще вопрос, а как мне нужно полностью массив в char переделать?
    int array[100];
    переделать вот так:
    char array[100];
     
  20. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    да....
    самое главное будет приведенье к типу char

    если с=getchar() целое занимающее 2 байта
    то получить код символа отбросив старший байт можно

    array[index]=(char )c;
     
Thread Status:
Not open for further replies.