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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2010, 18:38   #1
BioS
Пользователь
 
Регистрация: 06.02.2007
Сообщений: 42
По умолчанию sscanf() неправильно работает

float x, y, z;
sscanf( pData, "%f%f%f", &x, &y, &z );


в pData = "5.410359 23.905598 -0.409072"

x = 5.00000000
y и z не меняются

почему так?
BioS вне форума Ответить с цитированием
Старый 06.02.2010, 18:43   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

мб надо так:
Код:
sscanf( pData, "%f %f %f", &x, &y, &z );
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 06.02.2010, 19:31   #3
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

В этих двух строчках не к чему придраться. Пробелы там неважны. Надо на весь текст смотреть (или хотя бы на то, что делается между вводом и выводом).

Added 17:43 CET
Даже, точнее, между инициализацией pData и выводом.

Последний раз редактировалось Vago; 06.02.2010 в 19:43.
Vago вне форума Ответить с цитированием
Старый 06.02.2010, 21:23   #4
BioS
Пользователь
 
Регистрация: 06.02.2007
Сообщений: 42
По умолчанию

вот, упростил что дальше некуда. никаких вводов и выводов

TCHAR pData[] = "5.410359 23.905598 -0.409072";
float x, y, z;
sscanf( pData, "%f%f%f", &x, &y, &z );

всеравно не работает
BioS вне форума Ответить с цитированием
Старый 06.02.2010, 21:39   #5
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
float x, y, z;
	char pData[]="5.410359 23.905598 -0.409072";
	sscanf( pData, "%f%f%f", &x, &y, &z );
	printf("%f %f %f\n",x,y,z);
rrrFer вне форума Ответить с цитированием
Старый 06.02.2010, 21:41   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

sscanf служит для ввода данных.
Код:
#include <stdio.h>
#include <string.h>
#include <conio.h>

int main()
{
        char *buff = new char[255];
        float x, y, z;

        strcpy(buff, "5.410359 23.905598 -0.409072");

        sscanf(buff, "%f %f %f", &x, &y, &z);

        printf("%f %f %f", x, y, z);

        delete []buff;

        getch();

        return 0;
}

Последний раз редактировалось profi; 06.02.2010 в 21:46.
profi вне форума Ответить с цитированием
Старый 06.02.2010, 21:49   #7
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Щось тут не те, хлопцi...
Код:
#include <stdio.h>
#include <tchar.h>

void main(){
   
//1   char pData[] = "5.410359 23.905598 -0.409072";
   TCHAR pData[] = "5.410359 23.905598 -0.409072";
   float x, y, z;
   sscanf( pData, "%f%f%f", &x, &y, &z );

   printf( "%g %g %g\n", x, y, z );

}
Всё работает. BioS, выложи свой cpp-файл, "as is", пожалуйста.
Vago вне форума Ответить с цитированием
Старый 06.02.2010, 22:36   #8
BioS
Пользователь
 
Регистрация: 06.02.2007
Сообщений: 42
По умолчанию

нашел из-за чего происходит ошибка - setlocale( LC_ALL, "Russian" );

до этой фанкции работает нормально, после неправильно
BioS вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильно работает WinExec? TwiX Общие вопросы Delphi 2 26.11.2009 21:07
Неправильно работает поиск Власов А.С. БД в Delphi 5 12.10.2009 05:59
задача работает неправильно, подскажите! IvanIvan Помощь студентам 1 26.05.2008 22:21
Скрипт неправильно работает aleksa76 JavaScript, Ajax 4 21.05.2008 17:47
Запрос неправильно работает... yulia БД в Delphi 0 27.05.2007 20:41