#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
/*
this program takes inputs from user and stores them into specific locations wherever user specify
without using scanf function.
*/
void omarin(char *s, ... ); // this function do the functionality of scanf .
int main()
{
printf("\n\t\t>> NOTES <<\n");
printf("\nthe program will take inputs from you and stores them into variables without \
scanf function.\n\n");
printf("you can change types of input you want to enter from main. \n\n");
printf("now please enter integer value , float value ,and char ,please put between them\
spaces and finally press enter to stores them in variables.\n\n ");
int integer_value;
float float_value;
char c;
omarin("d f c ",&integer_value,&float_value,&c);
printf(" integer = %d\tfloat = %f\tchar = %c\n",integer_value,float_value,c);
return 0;
}
void omarin(char *s, ... )
{
char sr[20][20]={'\0'};
char st[30]={'\0'};
gets(st);
int lenst=strlen(st);
int counter=0;
int arr[20]={0};
int k;
for(k=0;k<=lenst;k++)
{
if(st[k]==' '||st[k]=='\0')
{
arr[counter]=k;
counter++;
}
}
int h;
int index=0;
int jk=0;
for(h=0;h<10;h++)
{
int jk=0;
if(arr[h]!=0)
{
int j;
for(j=index;j<arr[h];j++)
{
sr[h][jk]=st[j];
jk++;
}
index=arr[h];
}
}
union Printable_t {
int * i;
float * f;
char * c;
char * s;
} Printable;
va_list arguments;
va_start(arguments,s);
int len=strlen(s);
int i;
int w=0;
for(i=0;i<len;i++)
{
switch(s[i])
{
case 'd':
Printable.i=va_arg(arguments,int*);
*(Printable.i)=atoi(sr[w]);
w++;
break;
case 'f':
Printable.f=va_arg(arguments,float*);
*(Printable.f)=atof(sr[w]);
w++;
break;
case 'c':
Printable.c=va_arg(arguments,char*);
*(Printable.c)=(sr[w][1]);
w++;
break;
}
}
}
Store data without Scanf (C Program)
Saturday, 30 November 2013