07-19-2014
I avoid the *scanf*() functions like the plague. If they are passed unvalidated input, results are "undefined". If you're lucky your process will just SEGV and not cause any damage, if you're not you'll get corrupt data in some way.
To validate the input you have to know what it is and what standards to check it against. In other words, you have to parse and interpret the data. Because you pretty much can't safely call one of those functions without doing that.
Once you do that, there's no point in calling one of the *scanf*() functions.
10 More Discussions You Might Find Interesting
1. Programming
thanks to everyone for your earlier replies, but i have yet another problem with file i/o. i'm trying to read multiple lines with the same file, and have been using the following code to take in the first two lines from a file...
fscanf(fileptr, "%d %d %d %d %d %d\n", &n1, &n2, &n3, &n4, &n5,... (1 Reply)
Discussion started by: j_t_kim
1 Replies
2. Programming
I keep trying to use fscanf() and for some reason I can't get the syntax down and always get seg faults. I'm on a SunOS 5.5.1, and my current code looks like this:
int n1, n2, n3, n4, n5, n6;
/* open config file */
if (fileptr = fopen(filename,"r") == NULL) {
printf("couldn't open... (3 Replies)
Discussion started by: j_t_kim
3 Replies
3. Programming
Hi,
Can any one tell me what "%hx" as control parameter mean in fscanf.
Thanks,
abey (4 Replies)
Discussion started by: abey
4 Replies
4. Programming
I use fopen, fscanf, fclose to read a file. It can work well. since many files should be read, a function is created with the same code. But in the function, fscanf can not work well.
for example, the first line of the the file is: > filename
but the fscanf will give: 207/23/eee/34
it appears... (2 Replies)
Discussion started by: cdbug
2 Replies
5. Programming
hey guys, I'm working on a term project for a c/unix class. The basis of the program is that it will calculate the weight/balance of a plane. I'm hoping to have an input file as such:
"
Pilot weight:
Passenger weight:
baggage wieght:
etc
"
and the idea is that I'm trying to use... (2 Replies)
Discussion started by: jlangholzj
2 Replies
6. Programming
Hi
I have a file like that:
1 2 3 4 5 6 7 8
and I want print on stdout:
1 3 8
in other words i want choose what print out.
I was thinking to use fscanf as:
fscanf(file_in,"%d %d %d",&a, &b,&c);
but in this way i get:
1 2 3
Is there a solution using fscanf to obtain my... (2 Replies)
Discussion started by: Dedalus
2 Replies
7. Shell Programming and Scripting
Hello,
I really would appreciate some help with a bash script for some string manipulation on an SQL dump:
I'd like to be able to rename "sites/WHATEVER/files" to "sites/SOMETHINGELSE/files" within the sql dump.
This is quite easy with sed:
sed -e... (1 Reply)
Discussion started by: otrotipo
1 Replies
8. UNIX for Dummies Questions & Answers
hi there...
i have a question regarding the fscanf function...
let's say i have a data:
1 2 3 4 5 6
7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6
how do i read only the first COLUMN, or the second COLUMN or the third COLUMN or etc....??????
thanks (1 Reply)
Discussion started by: theunknown
1 Replies
9. UNIX for Dummies Questions & Answers
Hi
In the below query userreg.status returns a value of 1 (Active) or -1 (Non Active). Ideally, I would like to replace this automatically on the export so instead of getting 1 or -1 I get Active / Non Active.
Any help, as usual, would be greatly apprecited. (1 Reply)
Discussion started by: theref
1 Replies
10. Shell Programming and Scripting
Hi,
I have a set of files in a directory that I have to read and replace the first occurrence of a number with another dummy number. This is what I have so far but it does not seem to work. The files have lot of other data in each row and each data element is separated by ,@,
for file in... (13 Replies)
Discussion started by: scorpioraghu
13 Replies
LEARN ABOUT SUNOS
mvwscanw
mvscanw(3XCURSES) X/Open Curses Library Functions mvscanw(3XCURSES)
NAME
mvscanw, mvwscanw, scanw, wscanw - convert formatted input from a window
SYNOPSIS
cc [ flag... ] file... -I /usr/xpg4/include -L /usr/xpg4/lib
-R /usr/xpg4/lib -lcurses [ library... ]
c89 [ flag... ] file... -lcurses [ library... ]
#include <curses.h>
int mvscanw(int y, int x, char *fmt, ...);
int mvwscanw(WINDOW *win, int y, int x, char *fmt, ...);
int scanw(char *fmt, ...);
int wscanw(WINDOW *win, char *fmt, ...);
PARAMETERS
y Is the y (row) coordinate of the position of the character to be read.
x Is the x (column) coordinate of the position of the character to be read.
fmt Is a scanf() format string.
win Is a pointer to the window in which the character is to be read.
DESCRIPTION
These functions are similar to scanf(3C). Their effect is as though mvwgetstr(3XCURSES) were called to get a multi-byte character string
from the current or specified window at the current or specified cursor position, and then sscanf() were used to interpret and convert that
string.
RETURN VALUES
Upon successful completion, these functions return OK. Otherwise, they return ERR.
ERRORS
No errors are defined.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
|MT-Level |Unsafe |
+-----------------------------+-----------------------------+
SEE ALSO
getnstr(3XCURSES), libcurses(3XCURSES), printw(3XCURSES), scanf(3C), wcstombs(3C), attributes(5), standards(5)
SunOS 5.10 5 Jun 2002 mvscanw(3XCURSES)