Форум: Форум C++Разное
Новые темы: 00
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Самое простое
 
 автор: exp   (27.07.2007 в 15:22)   письмо автору
 
 

не пойму как в программу вводятся данные ,

//file.c

#include <stdio.h>
main()
{
int a b c;
scanf("%d %d",&a,&b);
c=a+b;
printf("summa=%d\n",c);
}
/*высвечивается окно
 и всё*/


как ввести с клавиатуры a и b ?, или не с клавиатуры ...

//продублировалось.....

// спасибо

  Ответить  
 
 автор: Fddd   (27.07.2007 в 18:34)   письмо автору
 
   для: exp   (27.07.2007 в 15:22)
 

Не совсем понял что вы имеете ввиду...
Но сама программа написана неверно.
Смотрите исправления:

#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d %d",&a,&b);
c=a+b;
printf("summa=%d\n",c);
return 0;
}

Запускаете и через пробел вводите 2 числа потом жмёте интер.

  Ответить  
 
 автор: EXP   (27.07.2007 в 22:45)   письмо автору
 
   для: Fddd   (27.07.2007 в 18:34)
 

заработало , толькосделал
return main();

ато читать не успевал :)

  Ответить  
 
 автор: EXP   (29.01.2008 в 09:34)   письмо автору
 
   для: EXP   (27.07.2007 в 22:45)
 

решил не заводить новую тему...
тоже вроде из простого :)
Как строку раможно разбить на переменные или массив , что-бы получилось с типа integer ?

#include <stdio.h>
#include <stdlib.h>

int main()
{
char *str = "31 12 1999";
int tm1[2], tm2[2], tm3[4]; // здесь если убрать [...]  с ошибкой получается
int *tm[] = {tm1, tm2, tm3};

printf("%s\n<hr>\n", str);

sscanf(str, "%s %s %s", tm[0], tm[1], tm[2]);  // а здесь если %s поменять в переменную попадает мусор
printf("%s<hr> \n%s<hr> \n%s<hr>\n", tm[0], tm[1], tm[2]);

if (31 < tm[0] < 1 || 12 < tm[1] < 1 || 2008 < tm[2] < 1970) printf("\n\n\n\nerror\n");
/* тут ошибка из-за того что не int */

system("PAUSE");
return 0;
}

получается разбить так , но желательно int

ижелательно вместо пробела использовать например ; но тогда sscanf не работает

  Ответить  
 
 автор: exp   (29.01.2008 в 20:58)   письмо автору
 
   для: EXP   (29.01.2008 в 09:34)
 

разобрался почти,
оказывается в sscanf нехватало & перед переменными
и так 1>x>9 оказывается нельзя делать :)
#include <stdio.h>
#include <stdlib.h>

int main()
{
char *str = "31;12;1999";
unsigned int tm1, tm2, tm3;

printf("%s\n<hr>\n", str);

sscanf(str, "%u;%u;%u", &tm1, &tm2, &tm3);
printf("%02u<hr> \n%02u<hr> \n%i<hr>\n", tm1, tm2, tm3);

if (31 < tm1 || 12 < tm2 || 2008 < tm3 ) printf("\nerror\n");

system("PAUSE");
return 0;
}
но если строка будет "31;12;-1999" то sscanf её пропустит с минусом, printf нормально,

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования