04-16-2002
Well, if I use scanf("%s", &Ch) the program works correctly, but the 'enter' character and the terminating character '\0' where are stored?
Isn't this an error? Don't these two characters overwrite the two bytes of memory next to the "Ch" variable?
If the method you shown me is ok, then when do we need to use "%c" or other functions that reads only a character (like getchar) ?
I still don't understand...
Another question: I want to read a string, scanning also spaces and tabs and check the length (and if necessary prompt the user to re-enter the string). Is the use of fgets followed by sscanf the best method I can use? Or are there any better methods?
Thanks a lot for your help!
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
i have instaled a boot loader and win98 on drive c: and linux on drive d: and when i go to boot with the loader into linux nottin happens.is there some way i should install lilo to let it boot of a loader on drive c: ? (5 Replies)
Discussion started by: perleo
5 Replies
2. UNIX for Dummies Questions & Answers
can someone tell me what commands in Linux RedHat 8.0 will give me a graph of whats going on on my system. When Is ay graphs I mean graphs like does produced by perfview of solaris and glance of HP-UX. (3 Replies)
Discussion started by: TRUEST
3 Replies
3. Programming
hi i am a beginner to C
i have encountered a problem with my assignment, and i have researched it on the internet, but unfortunately i didn't find anything related to that.
i am writing a simple program that takes user's input by prompt command, and parse the whole line into an array of... (1 Reply)
Discussion started by: inkfish
1 Replies
4. Programming
hi all
i have a program in C (Unix Solaris 5.7) and i want to read a string from keyboard, but the "scanf" doesn´t reads spaces.
example:
....
char name;
....
printf("Enter your name: ");
scanf("%s",&name);
printf ("Your name is: %s", name);
and if i write Kevin Costner ... (4 Replies)
Discussion started by: DebianJ
4 Replies
5. Programming
hi all!
i've written a simple c program:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a;
char b;
char c;
... (4 Replies)
Discussion started by: mridula
4 Replies
6. Programming
Hello everyone,
I hope someone is awake to help me on this..
hey How can I do something like this:
The user is asked is asked to enter an int value, but I want to provide a default value on stdout, which they can back space and change it to whatever they want..
for e.g:
Enter the... (4 Replies)
Discussion started by: the_learner
4 Replies
7. Programming
I don't know how to do this:
printf("creazione nuovo messaggio\n");
printf("insert dest\n");
scanf("%s",dest);
printf("insert object\n");
scanf("%s",ogg);
printf("inserire text\n");
scanf("%s",test);
... (7 Replies)
Discussion started by: italian_boy
7 Replies
8. Programming
Im a newbie to programming language, i found tat there r these function called printf and putchar() as well as scanf and getchar(), im curious abt why do dey hav these 2 different function although dey r doing the same instruction? :confused: (13 Replies)
Discussion started by: kris26
13 Replies
9. Shell Programming and Scripting
$ cc Array.c
Array.c: In function ‘main’:
Array.c:23: warning: passing argument 1 of ‘scanf’ makes po
Array.c:25: error: expected expression before ‘return’
Array.c:29: error: expected expression before ‘return’
Array.c: At top level:
Array.c:44: error: expected ‘)’ before ‘&’ token... (8 Replies)
Discussion started by: sgradywhite
8 Replies
10. Programming
I have a problem with scanf() for string pointer as member of a struct.
#include <stdio.h>
#include <stdlib.h>
struct Student {
int studentNumber;
int phoneNumber;
char *studentName; //line 7
// char studentName; //line 8
};
int... (10 Replies)
Discussion started by: yifangt
10 Replies
LEARN ABOUT OPENSOLARIS
gets
gets(3C) Standard C Library Functions gets(3C)
NAME
gets, fgets - get a string from a stream
SYNOPSIS
#include <stdio.h>
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
DESCRIPTION
The gets() function reads bytes from the standard input stream (see Intro(3)), stdin, into the array pointed to by s, until a newline char-
acter is read or an end-of-file condition is encountered. The newline character is discarded and the string is terminated with a null byte.
If the length of an input line exceeds the size of s, indeterminate behavior may result. For this reason, it is strongly recommended that
gets() be avoided in favor of fgets().
The fgets() function reads bytes from the stream into the array pointed to by s, until n-1 bytes are read, or a newline character is read
and transferred to s, or an end-of-file condition is encountered. The string is then terminated with a null byte.
The fgets() and gets() functions may mark the st_atime field of the file associated with stream for update. The st_atime field will be
marked for update by the first successful execution of fgetc(3C), fgets(), fread(3C), fscanf(3C), getc(3C), getchar(3C), gets(), or
scanf(3C) using stream that returns data not supplied by a prior call to ungetc(3C) or ungetwc(3C).
RETURN VALUES
If end-of-file is encountered and no bytes have been read, no bytes are transferred to s and a null pointer is returned. For standard-con-
forming (see standards(5)) applications, if the end-of-file indicator for the stream is set, no bytes are transferred to s and a null
pointer is returned whether or not the stream is at end-of-file. If a read error occurs, such as trying to use these functions on a file
that has not been opened for reading, a null pointer is returned and the error indicator for the stream is set. If end-of-file is encoun-
tered, the EOF indicator for the stream is set. Otherwise s is returned.
ERRORS
Refer to fgetc(3C).
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
lseek(2), read(2), ferror(3C), fgetc(3C), fgetwc(3C), fopen(3C), fread(3C), getchar(3C), scanf(3C), stdio(3C), ungetc(3C), ungetwc(3C),
attributes(5), standards(5)
SunOS 5.11 15 Oct 2003 gets(3C)