Написать программу ввода/вывода данных целого, вещественного и символьного типа - C (СИ)
Формулировка задачи:
"Написать программу ввода/вывода данных целого, вещественного и символьного типа без модификаторов и с допустимыми модификаторами. На дисплей выводятся строки, определяющие тип переменной и ее значение, следующего вида:
int <вводимое значение> <выводимое значение>
short int <вводимое значение> <выводимое значение>
В общем, это мой вариант...НЕ ДОПИСАННЫЙ. прога вылетает при вводе числа -0.675262089200e60
помогите, как определить символы в строке после определенного символа...например: после символа "е" в строке перевести (в данном случае 60) в число.
Есть еще мысль по структуре...это полный перевод с помошью циклов и ввода булеан, определить количество введенных символов и знаки. и если есть точка и т.п.
будьте добры, напишите и свои варианты проги. или помогите в моем.
заранее спасибо
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
main ()
{ char i[40];
char *c = "0";
char *ptr, p = 'e';
char m[30];
int l;
long int n;
float b;
int d;
clrscr ();
gets(i);
strcpy(m,i); //Copirovanie stroki 'i' v stroku 'm'
ptr = strchr (i, p);
d = strcmp (c,i); //Sravnenie strok
if ( d == 0)
printf ("Vvedeno chislo int 0");
else {
n = atol(i); //preobrazovanie stroki v long int
b = _atold(i); //preobrazovanie stroki v double
if (n < b && ptr) //sravnenie peremennih
printf("float <%s> <%e> ",m , b);
else {
if (b == 0)
printf ("Char <%s> <%s>",m , i);
else {
if (n > b && ptr) // povtornoe sravnenie peremennih iz-za vozmozhnosti otric chisla
printf("float <%s> <%e> ",m , b);
else {
if (n < b ) //sravnenie peremennih
printf("float <%s> <%f> ",m , b);
else {
if (b == 0)
printf ("Char <%s> <%s>",m , i);
else {
if (n > b) // povtornoe sravnenie peremennih iz-za vozmozhnosti otric chisla
printf("float <%s> <%lf> ",m , b);
else {
printf("int <%s> <%ld> \n",m , n);
;}
;}
}
}
}
}
}
getch ();
return 0;
}Решение задачи: «Написать программу ввода/вывода данных целого, вещественного и символьного типа»
textual
Листинг программы
#include <stdio.h>
int main(void)
{
char line[1000];
int retval;
retval = Get(line, sizeof line, stdin);
if (retval != 0) {
fprintf(stderr, "error: can't get line" "\n");
return 1;
}
printf("%s" "\n", line);
...
return 0;
}
Объяснение кода листинга программы
В данном коде:
- Объявлены две переменные:
lineтипаcharиretvalтипаint. - Переменная
retvalинициализируется значением, возвращаемым функциейGet(). - Выполняется проверка: если
retvalне равно нулю, то выводится сообщение об ошибке в файлstderr, после чего программа возвращает значение 1. - Если проверка не сработала, то выводится содержимое переменной
lineв файлstdout. - Далее в коде идут дополнительные действия, которые не описаны в задании.
- В конце программы возвращается ноль, что означает успешное завершение работы программы.