Автор Без Палева задал вопрос в разделе Другие языки и технологии
Си. scanf(). не пойму почему не считываются значения. Подскажите, пожалуйста. и получил лучший ответ
Ответ от Ra[гуру]
Проверьте соответствие форматной строки и типов данных, посмотрите настройки локали, обратите внимание как вводятся float, а как double:
#include <stdio.h>
#include <locale.h>
int main() {
float f;
double d;
struct lconv *lc;
setlocale(LC_ALL, "C");
lc = localeconv();
printf("decimal point: %c
", *lc->decimal_point);
printf("f d? ");
scanf("%f", &f);
scanf("%lf", &d);
printf("you enter: %f %f
", f, d);
setlocale(LC_ALL, "");
lc = localeconv();
printf("decimal point: %c
", *lc->decimal_point);
printf("f d? ");
scanf("%f %lf", &f, &d);
printf("you enter: %f %f
", f, d);
return 0;
}
Возможно, у вас та же проблема, с которой я сам недавно столкнулся. Когда вводите, вводить вещественные числа нужно вводить, например, так 5,9, а не 5.9.
1. Надо выкладывать задание. Написано "введите целочисленные", затем вводятся вещественные. Телепаты в отпуске. 2. Надо выкладывать код не картинкой, а, скажем, на pastebin.com - и не произвольно вырезанный кусок, а по возможности минимальный участок, где проявляется проблема. Этот участок кода не содержит кучу всего, от чего зависит выполнение - например, определений a,b,x,y. Телепаты.. . см. выше. 3. Надо конкретно описывать проблему. Значения не считываются? Отчего же - вот, -9.2559604013428634e+061 считалось. Может, считываются неправильно, или считываются неоттуда, или не в том порядке? Телепаты см. выше.
Задано считывать целые значения: int a,b,x;//объявление переменных scanf(%d %d %d &a,&b,&x);//считаем целые по формату целых Или нужно вещественные? Тогда float w,u,z; scanf(%f %f %f &w,&u,&z);//считаем float
Не могу понять как работает scanf(). Си.
Использовать подобные функции не есть хорошо ибо как видишь глюки начинаются) И почему нельзя
подробнее...
scanf()
scanf() возвращает число успешно прочитанных элементов форматной строки, а не число байтов. В
подробнее...
Помогите написать программу со switch в СИ
#include <stdio.h>
#include <conio.h>
#include <math.h>
int
подробнее...
Как ввести строку с пробелами,используя scanf в Си,не используя gets?
Есть такая идея) , но нужно знать точно количество слов и их длину.. .
char
подробнее...
Динамический массив в Си
Операция new для языка C++, а в Си требуется такая конструкция при выделении памяти:
подробнее...
Си++ СТРУКТУРЫ( задача внутри)
int sravnenie(char c){
 if ((c == \'m\') || (c == \'M\')) return 1;
 if (c ==
подробнее...
Динамическое выделение памяти, при сравнении строк. (Си без использования встр. функций)
> char *pass;
> scanf("%s", &pass);
Это не будет работать!
В переменной pass
подробнее...
На языке си %d означает целое число, а как дробные и знаки операций? И ещё другие виды.
читай справку по stdio.h или по scanf например
вещественный %f, короче функций много у этой
подробнее...
fgetc не работает. СИ
А кто тебе сказал что строчка заканчивается на /n?
Строчки в С всегда заканичваются нулём.
подробнее...
что означает знак процента "%" в си++ ?
Смотря где стоит. . если в printf, то отвечает за форматирование.
При остальных операциях -
подробнее...
Как на языке Си вытащить из строки число
Почитайте работу с указателями.
Как пример что касается строк:
#include
подробнее...
Программирование. Одномерные массивы в си.
"я ни черта не понял на лекции" Совершенно нормально. Лекции служат только для того, чтобы понять,
подробнее...
Как в Си заполнить массив случайными числами?
#include <stdlib.h>
...
int i, ar[ n ];
подробнее...