Solved

Input Of an Unspecified Amount From a User

Posted on 1998-09-27
2
235 Views
Last Modified: 2010-04-15
I am working on a project where the user enters in an unspecified amount of integers.  I havent came up with a good solution.

I can have the user enter the integers using scanf.  Scanf returns the amount of items entered I can use this to determine how much memory to allocate with malloc.  The problem is does scanf only count the valid data
(integers as opposed to characters?).  How would I handle if a character was in the mix of integers?


Am I headed in the right direction on this or does anyoen have a much better way of handling this.

Thanks
Darrell
0
Comment
Question by:larockd
2 Comments
 
LVL 1

Accepted Solution

by:
dotand earned 20 total points
ID: 1253087
Yoir best option would be to use a macro like isnum (I think that's the name on Borland C compiler, version 3.1).
If not than write your own, simply check the string until you hit a null and for each char check if it's the ascii range reserved for numbers.

That is, supposing s is the string in question and i an integer declared somewhere else that:


is_num(char *s){
  int i=0;
  while(s[i]){
    if(s[i]<='0' || s[i]<='9')
      return(0);
   }
   return(1);
   }
 }

Running atoi on the returned string won't help because there might be only a prtial conversion if it is a mixed string and no error returned. Better check using this method and then call atoi,
or are you lucky enough to call atol ?  ;-)>.

HTH,
Dotan
0
 
LVL 84

Expert Comment

by:ozo
ID: 1253088
What do you want to happen if a character was in the mix of integers?
0

Featured Post

Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address. This address might be address of another variable/address of devices/address of fu…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
The goal of this video is to provide viewers with basic examples to understand and use structures in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question