I am trying to write a terminal-like chat application in Linux. I would like to use a FIFO queue to print out the messages in terminal. The queue would be populated from 2 sources- stdin and messages sent from the other user over TCP. I have meet an obstacle that I cannot handle...
Lets say I would like to take user input using fgets and put it into a buffer. Then queue it if the buffer is not empty or print if it is. The problem is that when I use fgets or scanf, my input is instantly printed to the terminal..If i do:
Code:
fgets(message, 100, stdin); printf
("%s", message The string under message is printed twice :|. Is there a way to prevent this?
212Untitled1.cpp[Error] stray '222' in program 212Untitled1.cpp[Error] stray '' in program 212Untitled1.cpp[Error] stray '222' in program 262Untitled1.cpp[Error] stray '222' in program 262Untitled1.cpp[Error] stray '' in program 262Untitled1.cpp[Error] stray '222' in program Untitled1.cppIn function 'int main()': 2125Untitled1.cpp[Error] 'n' was not declared in this scope
What I want to do is simple, however I can not find a way to do it in c++ and I don't know for sure that it is possible. I want to create a function that creates a simple short-hand for printf(x); Such as:
void echo(x){ printf(x); }
But when I call the function:
echo "hi";//I want it to look like this //instead of: echo("hi");// like this.
Prompt the user to enter a day of the week as M (or m), T, W, R, F, S, and U for Monday through Sunday respectively. The user may enter an upper or lower case letter.
When the user enters a character, the program will echo the letter and output the name of the day of the week.
Provide an error trap that reads something like "you have entered an invalid letter; program aborting." Suggestion: use a switch statement with the error trap as the default condition. it is not necessary to prompt for multiple inputs.
So I know how to get the program to echo back the letter and everything. What I am a little confused about is: will I have to define all the letters as their respective day? eg. make M== Monday. And if I do have to do that how would I get it to accept Upper and Lower case letters and recognize that that letter is == monday ect. ect.
Also my main problem is the switch statement as the error trap. I have never used the switch statement, but I know what they do. I just don't really understand how I would use it for an error trap. Am I suppose to just make a case for every other letter in the alphabet other then M T W R F S and U? Even if I do that then what if the user enters a number instead of a letter?
Currently I am doing the first exercises from Illustrating C. The exercise that I am trying first is the one where someone can input degrees and the program will be able to put those in to sin or cos. Im trying to use fgets to take input from the user. the answer can only be sin or cos. Im having trouble with how to get it to work.
My goal is to have the output of the choice sin or cos. Store that choice. proceed to ask what the degrees are from the user. then i would have the degree input multiplied by pi/180 converting it to radians and having the program compute it that way
Code:
#include <stdio.h> #include <math.h> #include <string.h> int a; int main() }
With my input.txt file being Code: abcd efgh And in particular, there is no new line after the letter h, but when I print out the text string, I get a new line after h. Why is this?
i am trying to read a string using fgets and storing in an array i want to prevent fgets from storing the new line character on the array using the shortest means possible..
I'm new to C/C++. I am attemping to use fgets and sscanf to read a line of input, and confirm it is a positive number.My code works great, except for the case of a negative number. When I enter a negative number, my while loop seems to run infinitely, with stdin providng the same input over and over again.
The output of this short program is really weird. When I type 123 from the keyboard,I get the following answer in console window"123 length=4".Why the output of length is always 1 more than the actual length of the string that I type in.
How can I make fgets stop reading when it reaches a new line? Right now it will read the new line and continue until the buffer is full. I was thinking something like this.
In the assignment we are forbidden to use fscanf(). I have been trying to get this to work, but I've started to realize that I do not have a complete understanding of what strtok() actually does. I'm getting this warning when debugging: "assignment makes integer from pointer without cast."
This warning happens when assigning str to goal and assist, and I think it is because they are, when dereferenced, integers. The code below correctly assigns the name into the correct spot, but leaves nonsense data in the goal and assist arrays.
ex:-7880, -7888 file example: NAME GOALS ASSISTS JOHN 1 2
Code: void readLinesFromFile( FILE* Ptr, int* goal, int* assist, char** name, int lines ){/* * Reads lines from files and populates the arrays with the corresponding info. */ int index; char hold[ MAX_LINE ] = { 0 }; char* str = NULL;
[Code] .....
From what I understand about strtok(), it returns a string, and takes in a character array and a key value that tells it when to stop. In the online examples I've seen, they use NULL in the first field. I'm not sure why.
I have to make a program for school to evalute poker hand.I am not asking about the logic of the program,I am asking because I have to take the input from the console,five lines which can be the cards 2,3,4..10 and the problem is with J,Q,K,A ,because I dont know how to tell scanf to expect integer or char ? If I type J,Q,K,A the program crash ,
I want the user to be able to enter a command then a character, like for example: push r....I want the command to be stored in the array command, and the character to be stored in the variable c.
Now I wonder what the best way to get rid of the space is, using scanf or getchar (see below for code, only thing that I changed between the 2 versions is the statement before the comment "get rid of space")? Or maybe it doesnt matter?
Code:
include <stdio.h> #define MAX 200 void push(char c); // Puts a new element last in queue char pop(void); // Gets the first element in queue static char s[MAX]; }