Hello,
I want to read a line of decimal integers from standard input into an
array, stopping when a newline is encountered, and I'd like the function
to return the number of values read in.
Can someone tell me what's wrong with this function:
----------------------------
int read_array(int p[])
{
j=0;
while(scanf("%d",&p[j])==1)
j++;
return j;
}
----------------------------
I thought that as soon as scanf found a character that wasn't a decimal
number, it wouldn't be able to put it in the array and would return 0, and
I'd bust out of the while loop - but that doesn't happen.
I bet there's a standard library function for this, too - is there?
Thanks -Susan 1 2469
Susan Sherpi wrote: Hello,
I want to read a line of decimal integers from standard input into an array, stopping when a newline is encountered, and I'd like the function to return the number of values read in.
Can someone tell me what's wrong with this function:
---------------------------- int read_array(int p[]) { j=0; while(scanf("%d",&p[j])==1) j++; return j; } ----------------------------
I thought that as soon as scanf found a character that wasn't a decimal number, it wouldn't be able to put it in the array and would return 0, and I'd bust out of the while loop - but that doesn't happen.
As used here, scanf() skips white space -- and newlines
are considered white space. So if the first input line has
five numbers, the first five calls to scanf() will consume
and convert them. The sixth call will see the newline, skip
over it, and start trying to read from the second input line.
This use of scanf() will keep on returning 1 until it finds
a non-white character that cannot be part of an integer,
something like an 'x' or a '?' (or end-of-file). As long as
you keep feeding it numbers and white space, it will keep on
consuming them and keep on asking for more.
I bet there's a standard library function for this, too - is there?
There's probably some way to use scanf() with the "%["
specifier to do what you want, but if so it'll be ugly. I'd
suggest using two functions: read an entire single line with
fgets(), and then use strtol() repeatedly to convert the numbers
(and check for garbage). You could use sscanf() instead of
strtol(), but it'd be marginally more complicated.
-- Er*********@sun.com This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Bernhard Kuemel |
last post by:
Hi!
I want to read/write commands and program input to/from /bin/bash
several times before I close the stdin pipe. However, reading
from cat hangs unless I first close the stdin pipe.
<?php...
|
by: Dariusz |
last post by:
Below is part of a code I have for a database. While the database table is
created correctly (if it doesn't exist), and data is input correctly into
the database when executed, I have a problem...
|
by: Harold Howe |
last post by:
Howdy,
1- Are property reads in effect volatile? Or is the compiler allowed to
optimize property reads away? ie
class foo
{
public int bar
{
get { return m_bar;}
|
by: Nick |
last post by:
I have found a class that compresses and uncompresses data but need
some help with how to use part of it below is the deflate method which
compresses the string that I pass in, this works OK. At...
|
by: Mike Bartels |
last post by:
Hi Everyone!
I have two Arrays A and B. Both arrays are byte arrays with 7 bytes each.
The contents of array A and B are the same
A = {1, 2, 3, 4, 5, 6, 7};
B = {1, 2, 3, 4, 5, 6, 7};
When...
|
by: John Salerno |
last post by:
Is this valid:
string allSwitchValues = readSwitches.ReadToEnd().Split('|');
I have no way to test it just yet (although it didn't seem to create
compile errors). Originally I had it divided...
|
by: Anish G |
last post by:
Hi,
I have an issue with reading CSV files.
I am to reading CSV file and putting it in a Datatable in C#. I am using a regular expression to read the values. Below is the code. Now, it reads...
|
by: psy_berpunk |
last post by:
hey, i'm trying to write a simple program to read gif87a non-
interlaced format with a single image-descriptor ---
I am using djgpp on windows xp.
Sounds simple enough, unfortunatly data in...
|
by: Stephen.Schoenberger |
last post by:
Hello,
My C is a bit rusty (.NET programmer normally but need to do this in
C) and I need to read in a text file that is setup as a table. The
general form of the file is
00000000 USNIST00Z...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
| |