Sponsored Content
Full Discussion: Help on getchar
Top Forums Programming Help on getchar Post 302477407 by yg10 on Sunday 5th of December 2010 01:16:33 AM
Old 12-05-2010
1. getchar is an function, not a variable. So, probably you have to use getchar() instead of getchar. This explains the weird value of getchar.

2. getchar returns the integer _value_ of character entered. Casting variables compare and temp to (*char) is wrong. Just leave them as int.

3. The comparison of compare and temp will not work because characters will be analysed by program on after flushing the buffer (<ENTER> was pressed).

The following code writes characters to the file. (You need to press <ENTER> once before entering EOF - <CTRL>D in UNIX <CTRL>Z in Windows)
Code:
#include <stdio.h>

int main() {
    FILE* text;
    int temp=0;

    text=fopen("cat.txt","w+");
    while((temp = getchar()) != EOF) {
      putc(temp,text);
    }
    fclose(text);
    return(0);
}

Quote:
Originally Posted by fireblast
I wanted to make a simple program that writes chracters in a file but i didnt want to press enter .So i found the getchar which doesnt need enter.If i pass (int) getchar to putc ,in the file it shows a P character.The (int) getchar says it is equal to1734747216 so i do (int) getchar-1734747216 and it gives -62259200 and i cant understand why doesnt it give 0 and what is the P symbol since i didnt press any button?So i found that P symbol is the value of (char*)getchar and i wrote this code

Code:
#include <stdio.h>

int main()
{
FILE* text;
char* compare=(char*)getchar;
int temp=0;
text=fopen("C:\\cat.txt","w+");
while(1)
  {
  if ((char*)( temp = (int)getchar )!= compare) 
    {
      putc(temp,text);
    }
  }
  return(0);
}

Also if i change the != with == then the txt has iside it a P symbol as expected but the one with the != still doesnt work as expected
by me Smilie
 

5 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

getchar()

hey everyone! got another problem here. how would i use the getchar() in a prompt: Press any key to continue the way i did it was to define a char variable named ch and then wrotechar ch ... ch = getchar(); printf("Press any key to continue"); getchar():if you press enter it exits, but... (2 Replies)
Discussion started by: primal
2 Replies

2. Shell Programming and Scripting

Bash replacement to getchar

There's a replacement in bash for getchar or get functions of C and C++?Those functions read the next char avaliable in the input stream. I've tried something like: OLD_STTY=`stty -g` stty cbreak -echo look=`dd if=/dev/tty bs=1 count=1 2>/dev/null` stty $OLD_STTY But it is not working... (3 Replies)
Discussion started by: Asafe
3 Replies

3. Programming

How to skip getchar in C?

Hi, I would like to read an input from keyboard using getchar. However, if no input (No Carriage return/new line none whatsoever) is given after say, 5 seconds, I would like to skip the getchar and move on. How do I do this in C. I'm using GNU compiler set. Thanks, (5 Replies)
Discussion started by: cprogdude
5 Replies

4. Programming

How to kill disowned process which calls getchar() in code

Hi, What happens to process state when getchar() is called? I wrote a C code in which I call getchar() somewhere down the road. I forgot about that, I started the process, put it in bg and disowned it using "disown". Now, how do I see where that process has gone/how do kill it? Thanks, Amrut (1 Reply)
Discussion started by: 17amrut29
1 Replies

5. Programming

What is the difference between printf and putchar() or scanf and getchar() ?

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
GETC(3S)																  GETC(3S)

NAME
getc, getchar, fgetc, getw - get character or word from stream SYNOPSIS
#include <stdio.h> int getc(stream) FILE *stream; int getchar() int fgetc(stream) FILE *stream; int getw(stream) FILE *stream; DESCRIPTION
Getc returns the next character from the named input stream. Getchar() is identical to getc(stdin). Fgetc behaves like getc, but is a genuine function, not a macro; it may be used to save object text. Getw returns the next int (a 32-bit integer on a VAX-11) from the named input stream. It returns the constant EOF upon end of file or error, but since that is a good integer value, feof and ferror(3S) should be used to check the success of getw. Getw assumes no special alignment in the file. SEE ALSO
clearerr(3S), fopen(3S), putc(3S), gets(3S), scanf(3S), fread(3S), ungetc(3S) DIAGNOSTICS
These functions return the integer constant EOF at end of file, upon read error, or if an attempt is made to read a file not opened by fopen. The end-of-file condition is remembered, even on a terminal, and all subsequent attempts to read will return EOF until the condi- tion is cleared with clearerr(3S). BUGS
Because it is implemented as a macro, getc treats a stream argument with side effects incorrectly. In particular, `getc(*f++);' doesn't work sensibly. 7th Edition May 14, 1986 GETC(3S)
All times are GMT -4. The time now is 01:08 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy