Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #140150
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Function to trim trailing spaces |
| Date | 2019-01-24 02:29 -0800 |
| Organization | None to speak of |
| Message-ID | <ln1s521h8v.fsf@kst-u.example.com> (permalink) |
| References | <p_82E.54640$G14.18982@fx29.iad> <lnef9222nu.fsf@kst-u.example.com> <Pib2E.185816$JW5.82323@fx46.iad> |
DFS <nospam@dfs.com> writes:
> On 1/23/2019 9:46 PM, Keith Thompson wrote:
>> DFS <nospam@dfs.com> writes:
>>> Needed to right-trim a string (remove trailing spaces), and came up with
>>> this:
>>>
>>> void rtrim(char * s) {s[strlen(s)-1]='\0';}
>>>
>>> test_rtrim.c
>>> ------------------------------------------------
>>> #include <stdio.h>
>>>
>>> void rtrim(char * s) {s[strlen(s)-1]='\0';}
>>>
>>> int main(int argc, char *argv[])
>>> {
>>> char str[100];
>>>
>>> printf("\nEnter some text: ");
>>> fgets(str, sizeof(str), stdin);
>>> fseek(stdin,0,SEEK_END); //flush stdin
>>>
>>> printf("Before: '%s'\n",str);
>>> rtrim(str);
>>> printf("After : '%s'\n",str);
>>> }
>>> ------------------------------------------------
>>>
>>> Seems to work well. Any unobvious pitfalls?
[...]
>> Your fseek call also doesn't do what the comment says it does. If stdin
>> is an interactive device (which seems to be the intent), it will simply
>> fail.
>
> It doesn't fail at all, but yes, I know it's not a true flush of stdin.
In the program you posted, you can't tell whether it fails because you
don't test the result.
> This snippet is from a larger program, where I keyboard prompt 3x
> consecutively.
>
> Without the "flush" after the 1st prompt, the code falls through to
> the 3rd prompt without letting you enter anything for the 2nd prompt.
>
> Without the "flush" after the 2nd prompt, the 3rd prompts fails (falls
> through without letting you enter anything).
>
> So I do those flushes after all 3 prompts and it works fine.
That's odd. Since you talk about keyboard prompts, I presume
that stdin is associated with a keyboard. I would have expected
fseek(stdin, ...) to fail in that case.
Can you show a (possibly reduced version of) your program in which it
works as you say it does?
I just did a test. On Ubuntu Linux, using the above program, fseek()
fails and sets errno to 29 (ESPIPE, Illegal seek). On Windows
(compiling with x86_64-w64-mingw32-gcc) the fseek() call succeeds,
but I'm not sure what it does.
If you want to discard input (for example, all characters up to and
including the next newline), it's probably better to read and discard
them
int c; do c = getchar(); while (c != EOF && c != '\n');
rather than playing tricks with fseek(). (It's not necessary in your
small example because fgets() has already read the newline -- assuming
the input line isn't too long.)
[...]
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-23 21:00 -0500
Re: Function to trim trailing spaces Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2019-01-23 19:14 -0700
Re: Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-23 23:41 -0500
Re: Function to trim trailing spaces Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2019-01-23 22:40 -0700
Re: Function to trim trailing spaces Bart <bc@freeuk.com> - 2019-01-24 10:44 +0000
Re: Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-24 11:20 -0500
Re: Function to trim trailing spaces Bart <bc@freeuk.com> - 2019-01-24 16:47 +0000
Re: Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-24 13:51 -0500
Re: Function to trim trailing spaces Manfred <noname@invalid.add> - 2019-01-24 17:49 +0100
Re: Function to trim trailing spaces James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-01-24 08:52 -0800
Re: Function to trim trailing spaces Bart <bc@freeuk.com> - 2019-01-24 17:40 +0000
Re: Function to trim trailing spaces James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-01-24 12:08 -0800
Re: Function to trim trailing spaces Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2019-01-24 14:47 -0700
Re: Function to trim trailing spaces scott@slp53.sl.home (Scott Lurndal) - 2019-01-25 14:40 +0000
Re: Function to trim trailing spaces Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2019-01-24 14:44 -0700
Re: Function to trim trailing spaces Barry Schwarz <schwarzb@dqel.com> - 2019-01-23 23:39 -0800
Re: Function to trim trailing spaces Rosario19 <Ros@invalid.invalid> - 2019-01-24 10:49 +0100
Re: Function to trim trailing spaces mark.bluemel@gmail.com - 2019-01-24 01:55 -0800
Re: Function to trim trailing spaces "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-24 12:58 +0100
Re: Function to trim trailing spaces Nathan Wagner <nw@hydaspes.if.org> - 2019-01-24 03:01 +0000
Re: Function to trim trailing spaces Keith Thompson <kst-u@mib.org> - 2019-01-23 18:46 -0800
Re: Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-23 23:38 -0500
Re: Function to trim trailing spaces Barry Schwarz <schwarzb@dqel.com> - 2019-01-23 23:39 -0800
Re: Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-24 11:25 -0500
Re: Function to trim trailing spaces mark.bluemel@gmail.com - 2019-01-24 08:34 -0800
Re: Function to trim trailing spaces Barry Schwarz <schwarzb@dqel.com> - 2019-01-24 15:05 -0800
Re: Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-24 18:40 -0500
Re: Function to trim trailing spaces Keith Thompson <kst-u@mib.org> - 2019-01-24 02:29 -0800
Re: Function to trim trailing spaces DFS <nospam@dfs.com> - 2019-01-24 15:06 -0500
Re: Function to trim trailing spaces Mateusz Viste <mateusz@wont.tell> - 2019-01-24 20:07 +0000
Re: Function to trim trailing spaces scott@slp53.sl.home (Scott Lurndal) - 2019-01-24 20:24 +0000
Re: Function to trim trailing spaces Mateusz Viste <mateusz@wont.tell> - 2019-01-24 20:34 +0000
Re: Function to trim trailing spaces scott@slp53.sl.home (Scott Lurndal) - 2019-01-24 21:37 +0000
Re: Function to trim trailing spaces Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2019-01-24 15:34 -0500
Re: Function to trim trailing spaces James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-01-24 13:19 -0800
Re: Function to trim trailing spaces Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2019-01-24 14:52 -0700
Re: Function to trim trailing spaces James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-01-24 14:30 -0800
Re: Function to trim trailing spaces Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2019-01-24 16:59 -0700
Re: Function to trim trailing spaces Keith Thompson <kst-u@mib.org> - 2019-01-24 14:51 -0800
Re: Function to trim trailing spaces mark.bluemel@gmail.com - 2019-01-24 01:06 -0800
Re: Function to trim trailing spaces Keith Thompson <kst-u@mib.org> - 2019-01-24 02:13 -0800
Re: Function to trim trailing spaces mark.bluemel@gmail.com - 2019-01-24 03:46 -0800
Re: Function to trim trailing spaces Anton Shepelev <anton.txt@g{oogle}mail.com> - 2019-01-24 14:56 +0300
Re: Function to trim trailing spaces mark.bluemel@gmail.com - 2019-01-24 05:14 -0800
Re: Function to trim trailing spaces Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-24 18:51 +0000
Re: Function to trim trailing spaces "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-01-24 20:04 +0100
Re: Function to trim trailing spaces Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-01-24 20:25 +0000
Re: Function to trim trailing spaces Anton Shepelev <anton.txt@gmail.com> - 2019-01-24 23:50 +0300
Re: Function to trim trailing spaces Anton Shepelev <anton.txt@gmail.com> - 2019-01-24 23:45 +0300
Re: Function to trim trailing spaces Anton Shepelev <anton.txt@gmail.com> - 2019-01-24 23:54 +0300
Re: Function to trim trailing spaces Ralf Damaschke <rwspam@gmx.de> - 2019-01-24 22:43 +0000
Re: Function to trim trailing spaces Bart <bc@freeuk.com> - 2019-01-24 10:57 +0000
Re: Function to trim trailing spaces Bart <bc@freeuk.com> - 2019-01-24 23:05 +0000
Function to trim trailing spaces "I Set My Girlfriend's Pantyhose on Fire" <cdalten@gmail.com> - 2019-01-24 03:53 -0800
csiph-web