Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2015, 18:04   #1
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию Правильное применение stdin. (по Си)

Никак не могу использовать правильно stdin... Применение его в программе обязательно... Напишите, пожалуйста, в чем ошибки?(
Код:
int main (void)
{
    FILE *f;
    char f_name[20];
    int count;

    printf("Input name of file: ");
    fscanf(f_name,"%s", stdin);//
     f = fopen(f_name, "r");
    if (f == NULL)
    {
        printf("File not found\n");
        return NoFile;
    }

    switch(process(stdin, &count))
    {
        case NoNumber:
            printf("There is not number.");
            break;
        case OK: if (count > 0)
                      printf("In sequence sing changes %i time.", count);
                else
                      printf("In sequence sing have does symbols.");
                break;
    }

   fclose(f);
}
zaira001002 вне форума Ответить с цитированием
Старый 10.07.2015, 19:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это код под Линукс?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.07.2015, 20:04   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Нет, это просто не знание, что стдин и стдаут, стдеррор уже связаны...

Код:
fscanf(f_name,"%s", stdin);//
Не пробовали открыть доку и хотя бы порядок параметров посмотреть?
p51x вне форума Ответить с цитированием
Старый 10.07.2015, 20:09   #4
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию

порядок таков?
Код:
(fscanf(stdin, "%i", &f_name)
... в инете искала, не нашла подробного объяснения ... ладно, спасибо за подсказку
zaira001002 вне форума Ответить с цитированием
Старый 10.07.2015, 20:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
это просто не знание
А process(stdin, &count)? Это что за функа? Не нашел чет по ней описание на cplusplus...
Цитата:
в инете искала, не нашла подробного объяснения
Да вот оно: http://www.cplusplus.com/reference/c...anf/?kw=fscanf
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.07.2015, 00:33   #6
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Если нужно считать последовательность чисел с файла и подсчитать в ней сколько раз изменялся знак, то будет что-то примерно этого:

Код:
int main(){

    FILE *f;
    char f_name[20];

    printf("Input name of file: ");
    scanf("%s", f_name);
    f = fopen(f_name, "r");
    if (!f){
        printf("File not found.");
        return 0;
    }

    int count=0;
    int currNum;
    bool sign;  // false - "+", true - "-"

    int result = fscanf(f,"%d",&currNum);
    if(result==EOF){
        printf("There is not number.");
        fclose(f);
        return 0;
    }
    if( result <= 0){
        printf("...\nIncorrect sequence.");
        fclose(f);
        return 0;
    }
    printf("%d ",currNum);
    sign = (currNum<0);

    while( (result=fscanf(f,"%d",&currNum))!=EOF){

        if( result <= 0){
            printf("...\nIncorrect sequence.");
            fclose(f);
            return 0;
        }
        printf("%d ",currNum);
        if( (currNum<0) != sign ){
            count++;
            sign=!sign;
        }
    }
    printf("\n");
    if(count){
        printf("In sequence sign changes %d times.", count);
    }else{
        printf("In sequence sign not changed.");
    }

    fclose(f);
    return 0;
}
Цитата:
Сообщение от Stilet Посмотреть сообщение
А process(stdin, &count)? Это что за функа?
Мне тоже интересно, что это за функция.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 11.07.2015 в 00:35.
Krasiosoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильное применение методов формы Shouldercannon Общие вопросы Delphi 5 15.10.2013 13:35
Работа с stdin в ansi c Ru_DoLF Общие вопросы C/C++ 2 03.04.2011 19:48
условный оператор, правильное применение к заданию my_sappho_story Помощь студентам 13 01.12.2010 12:44
STDIN и STDOUT VovanZ Общие вопросы Delphi 2 07.04.2010 20:15
stdin SAYLOR Свободное общение 5 23.08.2008 23:49