HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2771  
Старый 25.04.2009, 19:55
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Я как бэ не программист по образованию и даже не интересующийся (особенно с++), ну да ладно...

Цитата:
1)юзинг неинициализированной переменной в ch
2)в случае достижения eof-а всё равно пытаемся что-то вывести
Приведи практический пример, когда мой вариант повлечет за собой ошибку

Цитата:
вот что тебя сподвигло на написание "<48" вместо "<'0'"?
ascii коды сподвигли
 
Ответить с цитированием

  #2772  
Старый 25.04.2009, 20:09
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от Kaimi  
Если не напутал, то вот поидее
Код:
#include <stdio.h>

void main()
{
FILE *in;
char ch;

in = fopen("in.txt", "r");

while(ch != EOF)
        {
         ch = fgetc(in);
         if((ch < 48 || ch > 57) && (ch < 65 || ch > 90) && (ch < 97 || ch > 122)) printf("%c", ch);
        }

fclose(in);
}
Зачем изобретать велосипед когда он уже сделан?
Код:
#include <stdio.h>
#include <ctype.h>

int main() {
    FILE *in;
    char ch;
    in = fopen("in.txt", "r");
    while(ch != EOF) {
        ch = fgetc(in);
        if(!isalnum(ch)) {
            printf("%c", ch);
        }
    }
    fclose(in);
    return 0;
}
 
Ответить с цитированием

  #2773  
Старый 25.04.2009, 21:51
Misha-_-rus
Новичок
Регистрация: 23.04.2009
Сообщений: 6
Провел на форуме:
10455

Репутация: 0
По умолчанию

Нужно задав двумерную матрицу поменять в ней 1 столбец с последним, Помогите очень срочно надо.

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{ int i,mas[25][25],o,n,m,q;

printf("Yslovie 2\n ");
printf("Vvesti matricy, 1 stolbec pome9t` mestami \n ");
printf("Vvedite razmernost: ");
scanf("%d", &o);
for (n=0; n<=o; n++)
for (m=0; m<=o; m++)
{mas[n][m]=random(15)-7;}
for (n=0; n<o; n++)
{printf("\n");
for (m=0; m<o; m++)
{printf(" %d ", mas[n][m]);}}
printf("\n");
printf("\n");

printf("S drygim stolbcom: \n");

????????????????? //Здесь должен быть код которй меняет один столбец местами с последним, и выводит измененый массив

getch();
return 0;
}
 
Ответить с цитированием

  #2774  
Старый 25.04.2009, 22:37
fker
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
Провел на форуме:
2816163

Репутация: 158
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{ 
int i,mas[25][25],o,n,m,tmp;
clrscr();
printf("Yslovie 2\n ");
printf("Vvesti matricy, 1 stolbec pome9t` mestami \n ");
printf("Vvedite razmernost: ");
scanf("%d", &o);
for(n=0; n<=o; n++){
   for(m=0; m<=o; m++)
   {
      mas[n][m]=random(15)-7;
      printf("%3d ", mas[n][m]);
   }
   printf("\n");
}
printf("S drygim stolbcom: \n");
//замена столбцов
for(i=0; i<=o; i++){
   tmp=mas[i][0];
   mas[i][0]=mas[i][o];
   mas[i][o]=tmp;
   }
for(n=0; n<=o; n++){
   for(m=0; m<=o; m++)
      printf("%3d ", mas[n][m]);
   printf("\n");
}
getch();
return 0;
}

Последний раз редактировалось fker; 25.04.2009 в 23:03.. Причина: o
 
Ответить с цитированием

  #2775  
Старый 25.04.2009, 23:18
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Цитата:
Сообщение от Kaimi  
Я как бэ не программист по образованию и даже не интересующийся (особенно с++), ну да ладно...


Приведи практический пример, когда мой вариант повлечет за собой ошибку


ascii коды сподвигли
Неинициализированная перменная в языкам типа с++ есть очень опасное зло. Значение будет ровно таким, какое значение имела ячейка памяти. Так как переменная локальная - то лежит в стеке. Сталобыть значение может быть любым. Таким образом ты получишь магическую ошибку, которая трудновоспроизводима, ибо зависит от состояния памяти процесса(а суть в том, что EOF это просто символьное описание числа 0xFF, которое встречается в памяти довольно часто, и вполне вероятно его получить в неочищенном блоке памяти). И если бы такое приложение было комерческим, то чудесные часы дебагинга и анализа кода были бы обеспечены. Ну а потом промывка мозга на тему "почему не учтен warning C4700, который дал компилятор"

По поводу кодов - так и пиши символы, зачем ты переводишь их в коды? Чтобы сложнее было понять суть проверки? if (ch >= '0' && ch <= '9') гораздо нагляднее. Опять же использование числовых констант ацки нерекомендуется нигде и никогда. Все константы должны иметь символические имена. #define WEEK_LENGTH 7 итп. Это помогает понять контекст кода просто глянув на него, без комментариев.

ЗЫ: не учите плохому плз. ибо потом такие кодесы городят, что страшно смотреть.

Последний раз редактировалось Ra$cal; 26.04.2009 в 01:29..
 
Ответить с цитированием

  #2776  
Старый 26.04.2009, 10:38
WALKMAN
Познающий
Регистрация: 30.12.2007
Сообщений: 52
Провел на форуме:
375217

Репутация: 2
По умолчанию

у меня вопрос. Имееться две переменные типа int, к пример
int a,b; //числитель и знаменатель
как привести дробь к нормальному виду, тоесть нужно разделить a/b и присвоить к переменной. такая фишка не срабатывает:

int a,b;
float s;
s=a/b;
cout<<s;

оно округляет значения. Подскажите как решить проблемму?
 
Ответить с цитированием

  #2777  
Старый 26.04.2009, 10:54
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от WALKMAN  
у меня вопрос. Имееться две переменные типа int, к пример
int a,b; //числитель и знаменатель
как привести дробь к нормальному виду, тоесть нужно разделить a/b и присвоить к переменной. такая фишка не срабатывает:

int a,b;
float s;
s=a/b;
cout<<s;

оно округляет значения. Подскажите как решить проблемму?
ничего не удивительного ведь
Цитата:
'=' : conversion from 'int' to 'float', possible loss of data
поэтому надо так
Код:
float a, b;
float s;
s = a / b;
cout << s;
 
Ответить с цитированием

  #2778  
Старый 26.04.2009, 11:01
WALKMAN
Познающий
Регистрация: 30.12.2007
Сообщений: 52
Провел на форуме:
375217

Репутация: 2
По умолчанию

Ясно, получаеться для правильной работы нужно вводить числа "с точкой" : 3.0, 2.0 .....
 
Ответить с цитированием

  #2779  
Старый 26.04.2009, 11:04
fker
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
Провел на форуме:
2816163

Репутация: 158
По умолчанию

2WALKMAN
#include<iomanip.h>

cout<<setprecision(3)<<s; //манипулятор setprecision(n) устанавливает точность вывода чисел типа float или double

Последний раз редактировалось fker; 26.04.2009 в 11:08..
 
Ответить с цитированием

  #2780  
Старый 26.04.2009, 14:44
CHIP:))
Познающий
Регистрация: 17.01.2007
Сообщений: 94
Провел на форуме:
528220

Репутация: 65
Отправить сообщение для CHIP:)) с помощью ICQ
По умолчанию

Люди подскажите как создать функцию которая примет структуру и вернет массив заполненый элементами из структуры. И как потом к этому массиву обращаться из мэйн. Че то сам писал писал так ничо и не получается. Желательно примерчик простенький.
На си)

Последний раз редактировалось CHIP:)); 26.04.2009 в 14:47..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Сценарии/CMF/СMS 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ