Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 08.10.2020
Сообщений: 26
1

Ошибка в scanf

08.10.2020, 15:45. Показов 945. Ответов 4

Author24 — интернет-сервис помощи студентам
Пишу лабу для универа только перешёл из паскаля в СИ искренне не понимаю как сделать так чтобы при вводе не целочисленных элементов программа прекращала свою работу а то при вводе ну допустим 3:3йуйвфцвй она считывает тройку и дальше не проверяет я понимаю что ошибка в функции scanf и пропуске возвращаемого значения но как исправить?


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
    long long x = 0;
    long y = 11;
    long long i = 0;
    long long ans = 0;
    long long a[11];
    printf("Input number x: ");
    scanf(" %lli", &x); getchar();
    a[0] = 0;
    a[1] = x;
    a[2] = x * x;
    if (a[2] > 0) {
        for (i = 3; i <= 10; i++) {
            if (i % 2 > 0) {
                a[i] = a[i - 1] * a[1];
            }
            else {
                a[i] = a[i / 2] * a[i / 2];
            }
        }
 
        for (i = 1; i <= 11; i++) {
            ans = ans + i * a[11 - i];
        }
        ans = ans + y;
        printf("Answer =  %lli\n", ans);
        return 0;
    }
    else
    {
        printf("u so stupid u cant print number");
        return 0;
 
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2020, 15:45
Ответы с готовыми решениями:

Ошибка scanf
Решил вкатится в программирование на C.Сначала всё было нормально, скачал Microsoft Visual Studio,...

Ошибка в Scanf
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main(void) { ...

Ошибка в scanf
вот кусок программы, подскажите, где ошибка в scanf int i; printf (&quot;Information:\n&quot;); ...

Ошибка ввода scanf
не воспринимает целое в переменной n scanf(&quot;Число N = %d&quot;,n);...

4
из племени тумба-юбма
2480 / 1802 / 418
Регистрация: 29.11.2015
Сообщений: 8,745
Записей в блоге: 15
08.10.2020, 16:39 2
Тогда нужно принимать на вход строку, и проверять ее посимвольно. При успешной проверке переводить строку в число, а при отрицательной заканчивать работу. Добавьте вместо scanf, данный блок кода:
C++
1
2
3
4
5
char str[50] = "";
fgets(str, 50, stdin);// scanf(" %lli", &x); getchar();
for(int i=0; str[i]!='\n'; i++) 
    if(str[i]<'0' || str[i]>'9') return 1;
x = atoi(str);
и в начало #include <stdlib.h>
1
0 / 0 / 0
Регистрация: 08.10.2020
Сообщений: 26
08.10.2020, 16:42  [ТС] 3
Увы но так я сделать не могу ибо мы пишем исключительно на C и использовать другие библиотеки кроме stdio.h не можем
0
из племени тумба-юбма
2480 / 1802 / 418
Регистрация: 29.11.2015
Сообщений: 8,745
Записей в блоге: 15
08.10.2020, 16:49 4
HiL_Madara, это все чистый Си, я просто теги от С++ поставил, ошибочно.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,125
Записей в блоге: 14
08.10.2020, 21:30 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
 
int convi(char* s)
{
    int i,acc=0;
    char c;
    for (i=0; i<strlen(s); i++)
    {
        c=*(s+i);
        if (c>='0' && c<='9') 
           acc=acc*10+c-'0';
        else
           break;
    }
    return acc;
}
 
int main()
{
    printf("%d\n",convi("456dfs"));
 
    return 0;
}
1
08.10.2020, 21:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2020, 21:30
Помогаю со студенческими работами здесь

Ошибка scanf?
Вот кусок кода. double lf; sscanf(&quot;5000.7&quot;,&quot;%lf&quot;,&amp;lf); ...

Ошибка в scanf
Есть простой код: #include &quot;stdafx.h&quot; int _tmain(int argc, _TCHAR* argv) { char x;...

Ошибка в SCANF
warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To...

Ошибка использования scanf
Проблемы с директивой scanf(..). Компилятор выдает: d:\program files\microsoft visual studio...

Ошибка в scanf (наверное)
http://************/llq1xj В чем проблема? Добавлено через 11 минут Помогите пожалуйста

Ошибка C4996 при использовании scanf
Всем доброго времени суток. В VS 2015. При работе с функцией scanf(), возникает ошибка C4996...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru