C :: Reading Full Sentence From Stdin And FILE
Sep 12, 2014
I thought maybe there was something in C that could read full sentences from stdin
Code:
scanf("%100[^
]s", string);
But that's not working for me. so i came up with my own function and its not giving me the results i want. here is the function including the call from main:
Code:
/* * * * * * * * * * * * * *
* FROM MAIN *
* * * * * * * * * * * * * */
printf("
Adding a new part...
");
printf("Enter part name: ");
get_string(new_part.pname);
[Code] .....
/* * * * * * * * * * * * * * * * * * * * * * *
* UNDESIRED OUTPUT *
* * * * * * * * * * * * * * * * * * * * * * */
8newpart
Where is the eight coming from? i thought fpurge clear the buffer. Also, I'm trying to add spaces in between words... i thought maybe putting within the while loop but outside of the if statement string[length +1] = '' would work, but it doesn't. so i put it outside of the loop but that i knew that wouldnt work either.
Problem #2 is reading from a file.. so far i have the following code which reads everything perfectly except the .txt file has a new line character at the end and i think its reading it:
Code:
/* * * * * * * * * * * * * * * * *
* READS FROM FILE *
* * * * * * * * * * * * * * * * */
if(read_in != NULL)
{
while ((fgets(read_string, MAX_PARTS ,read_in) != NULL) && (array_position < MAX_PARTS))
[Code] ....
0 in stock i want it to stop after reading the ball bearings line. a lot of issues for one post, but all related to reading inputs so i put it all on one.
View 2 Replies
ADVERTISEMENT
Oct 29, 2013
#include <iostream>
#include <string>
#include <istream>
[Code]....
It seems like my program doesnt want to take in a sentence, only the first word i type in
View 1 Replies
View Related
Dec 11, 2012
I've created a class that is supposed to store first name, last name, date of birth, date of death, and a fact about a person (all variables within the class). Im trying to fill these variables with a read function. it reads a .txt file like this
Firstname Lastname 1987 1988 this guy did this
The problem is, I don't know how to handle the last variable. the variable needs to hold the entire "this guy did this" sentence. i made it a string, just because i was clueless, and as expected, it only holds "this"
this is my .h:
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
class Person {
public:
Person();
Person(const Person & person);
[Code] ....
Here is the read function in the .cpp:
bool Person::Read(ifstream & input) {
return (input >> fname >> lname >> dob >> dod >> fact);
}
View 3 Replies
View Related
Mar 26, 2014
I am aiming to read an integer from stdin(pointed to the uart) and echo it with the uart interrupt service routine. there is a simple retarget file along with the main code shown below. So far i can read chars (char x[32] but i am struggling with int.
I have gathered that i need to use the scanf function to read an int from the pointer defined in fgets.
My output is giving me weird values, i enter 8 and ill get a random 3 digits back. I have a feeling its a problem with the input buffer.
Code:
//------------------------------------------------------------------------------// Cortex-M0//------------------------------------------------------------------------------
#include <stdio.h>#include <time.h>#include <rt_misc.h>
#include <stdlib.h>#define AHB_LED_BASE
0x50000000#define AHB_UART_BASE
0x51000000void UART_ISR(){
[Code] .....
View 9 Replies
View Related
Mar 8, 2013
I'm writing a program that reads from stdin and prints it back out. I'm getting a bunch of garbage then a seg fault.
Code:
double numbers[256];
memset (numbers, 0, sizeof (numbers));
for (;;) {
double num = scanf ("%255lg", numbers);
if (num== EOF)
break;
}
for (int i = 0; i < (int)sizeof (numbers); ++i) {
printf ("%g
", numbers[i]);
}
View 3 Replies
View Related
Apr 25, 2014
I use the following code segment to read and output the text piped to a program. If there is no piped text, the code segment is skipped and then the program continues. What I need to do is restore stdin to the keyboard after reading from the pipe. I use the PeekNamedPipe() and ReadFile() because reading from stdin blocks until it has something, and I don't want that to happen. After reading from the pipe, the program begins to execute, and the main loop can be paused and it prompts for a command. I just can't figure out how to restore input to the keyboard. Obviously the platform is Windows.
char char_buffer[1024];
DWORD bytes_read;
DWORD bytes_avail;
DWORD dw;
HANDLE stdin_handle;
bool is_pipe = false;
[code]....
View 4 Replies
View Related
Feb 6, 2013
I am having trouble in reading my full name in just a single variable and some kind of authentication. this is my code by the way.
Code:
#include <stdio.h>
int main(void)
{
char NAME_MINE1[40];
void clrscr();
}
[code]....
if i enter my full name i will be able to go on to the next statement/command but when i put on some name (which is not mine) i will automatically get an error and exit the program.If i type "Qwerty You Tube" EXACTLY and not just the first string before the whitespace i will be able to proceed but when i enter "Qwerty Tube You" or "Qazse Qop Queen" i will get an error and the program will exit.
View 6 Replies
View Related
Apr 18, 2013
So I'm trying to reformat a paragraph where the first letter of each sentence is capitalized and the rest are lower case. This is my function thus far. I'm trying to read for the end marks . ! and ? and have it so that once the are encountered the next word is capitalized. I used ispunct initially but it read for things like ,'s as well.
int PunctCount(string Text)
//Counts the end marks. {
int Total = 0;
for (int i = 0; i < Text.length(); i++)
if (Text == '.' || Text == '?' || Text == '!')
Total++;
return Total;
}
Right now I get error: no match for âoperator==â in âText == '!'â
View 1 Replies
View Related
Oct 9, 2013
I am trying to write a program that ask the user to enter a sentence and then a word to be searched for in the sentence. The program must then search for the word in the sentence in a loop and continue to output each place the word is found. For example if the sentence is : I like pickles, pickles, pickles
and you searched for pickles it would return pickles found at 7, pickles found at 16, pickles found at 25.
I am having trouble writing the equation to make the find keep searching after each occurrence of the word being searched. Here is the code I have so far
HTML Code:
#include <iostream>
#include <string>
using namespace std;
int main() {
string paragraph;
[Code] ....
View 5 Replies
View Related
Nov 26, 2013
I wanted to make my program read the file "input.txt". I did it successfully, but now I want to get the full path of the file "input.txt". Is there any way to do it?
My output should be :
FILE *file;
std::string fullFileName;
file = fopen("input.txt", "rb");
if(file != NULL)
{
// getfullfilename(file, fullFileName);
// std::cout << fullFileName.c_str() << std::endl;
}
View 5 Replies
View Related
Jan 16, 2014
How to get a full path of a directory only using a text file name? (Btw i am using visual studio not windows)...
View 9 Replies
View Related
Oct 24, 2014
I've a problem here...
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
#include <iomanip>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
[Code] ....
The program needs to be able to read the middle names within the text file named Info2.txt
Simply adding the Mname or any related value where the other to name values doesn't do anything and only the 1st line appears on the output.
Don Jon111012
Jack Bo Todd151015
Jill Jo Jane161011
Bob Jack Chuck 131513
Da Fu111012
That is the correct way it appears in the text file. Also I know it's commented out, but that just to keep the program from crashing.
current output
Survey Results:
Name Results
Don Jon 33.00
This is the Info1.txt file info by the way.
Ken A202017
Gus B151015
Bill C151512
Jara C151720
Lu E101510
Chow B171015
And the output
Survey Results:
Name Results
Ken A 57.00
Gus B40.00
Bill C42.00
Jara C52.00
Lu E35.00
Chow B 42.00
Which when ran with Info1 selected, it is the correct output I'm looking for. I've tried getline and other solutions and they didn't work.
View 1 Replies
View Related
Dec 28, 2014
So I'm working on that program that uses .txt files to store data, and I have one problem: I can't recover one full name from the .txt file
It's a school library program and it uses the <fstream> library for file operations, it stores theBookSignature >> theNameOfTheAuthor >> theBooksName.
I understand that C++ stops the input of a line when it stumbles upon a space, but isn't there something like a getline(cin, variableName) for file streams?
View 2 Replies
View Related
Oct 30, 2014
I have to modify my output text file and convert every sentence into paragraph. I ran it its copying whole text but not paragraph after dots.
#include <iostream>
#include <string>
#include <fstream>
#include <cctype>
using namespace std;
void copyText(ifstream& intext, ofstream& outtext, char& ch);
[Code] .....
View 2 Replies
View Related
Nov 10, 2013
I have to optimize a code for below scenario. I am reading stdin (a file redirected to stdin) character by character. How many chars are going to come is not known. After every few chars there is a seaparator. e.g $ as below
rhhrkkj$hghjhdf$ddfkrjt
While reading, if the separator arrives I'm processing the string stored before that separator and then continue reading stdin in same fashion, till EOF. I am using getc(stdin) to read chars.
Using gprof I can see most of the program time is spent inside main() , for this reading logic. Rest of the program is just some insert and search operations. I am getting time of 0.01 secs at the moment, want to reduce further.
View 6 Replies
View Related
May 23, 2013
Is there a maximum capacity for stdin ?
View 2 Replies
View Related
Feb 19, 2015
I'm learning internet sockets right now and to that end I've made a simple client/server chat program centered around select(). I've got it to where multiple messages can be sent and received on either side and the "prompt" will move down 1 line each time accordingly.
My only sticking point is when someone is in the middle of typing a message and a new message is received. The message they are currently typing is going to be deleted, so they'll have to start over again. What I want to do is grab the current contents of the stdin buffer (meaning, there's no ), save it, print the received message and move the prompt downward as usual, and then put that saved message back into the buffer, meaning not only is it back on the screen now, it's erasable too as if nothing ever happened.
I know that this will definitely be some very very non-standard C, and that's fine. To that end, I've read that curses, GNU readline, and termios are possibilities for this. I've tried those, but am having trouble making it work.
This will be a moot point when I put a GUI on it soon (probably wx, but maybe Qt) since it won't even be an issue, but I'm determined to make this work. Both systems (the "client" and the "server") are Linux, one being Ubuntu and one being Debian.
View 2 Replies
View Related
Mar 23, 2014
Code:
#include <stdio.h>
#include <stdlib.h>
#define MAX_READ 2
int main( ) {
char * secret = "abecedarium consisting This is a string literal!";
[Code] ....
I am trying to test what happens in the sscanf converted types (command and string) if they are smaller, i got surprised that the printf worked, so i dont know why.
this code is just a test for what i want to do, what i really want to do is for example: i have this string from the stdin which must have the following format:
connect name.surname
So I need to check the cases when it is not the input that i want, namely if the name.surname is for example bigger than 30 chars. and also if it has the abecedary characters from the ascii...
View 2 Replies
View Related
Sep 14, 2014
Is it possible to create a dynamic char array on the fly directly from stdin? I do not want to create a fixed length array before hand and then copy contents of it into a malloc created array.
Code: //[1]
char line[MAX1];
gets(line);
[Code]....
I could do either [1](buffer overflow problem) or [2] and then goto [3]. But both will have a problem if the input is more than the size MAX1(use defined).
Is it possible to do something of the effect of readLine() method of BufferedReader class in Java or the Console.readLine in .NET? Is it possible to peek into stdin and see the size of the input and then creat an array of the same exact size?
View 8 Replies
View Related
Oct 10, 2014
I want to read a string of unknown length from stdin. I tried to follow the approach from this link. URL....My code is like this:
#include <iostream>
#include <string>
using namespace std;
int n;
cin >> n;
cout << "The value of n is " << n << endl;
}
[code]......
What I have noticed is that if I take integer input from cin (cin >> n;) in the above code before getline, the control does not stop on getline to take str as input from the console. If I don't do (cin >> n) before getline then the control stops on getline and takes the string as input.What is the best way to read from console multiple strings of unknown length in combination with the integers?
View 5 Replies
View Related
Mar 20, 2014
I have a pre-declared array which sorts strings to it's alphabetic order and want to change it so it reads from stdin.
char *array[] = {"aaa", "ccc", "bbb", "ddd"}
I tried doing something like this:
for (i = 0; i < length; i++)
scanf("%s", &array[i]);
I just can't bring it to work. Another thing is, the input is a a bunch of strings separated by commas and ends with a period. Since I have to make a working C model which gets translated to assembly language later on I can't use functions like strtok.
View 6 Replies
View Related
Jun 21, 2013
I have a code to check the last time modification of a file using "gmtime". Is it possible to remove the seconds in the result?
Here is my code:
struct tm* clock;// create a time structure
struct stat attrib;// create a file attribute structure
stat("test.txt", &attrib);// get the attributes of afile.txt
clock = gmtime(&(attrib.st_mtime));// Get the last modified time and put it into the time structure
View 6 Replies
View Related
Apr 11, 2013
Why is this code not marking that the queue is full.. I'm just including my Add function that verifies if they want to add another number to the queue. The isFull function works fine, have used it on other programs.
template <class T> //Template currSize function
int Queue<T> :: currSize ()
{
return (rear - front + arraylength) % arraylength; //
[Code].....
The output goes all the way down to 1 spot left, lets the user enter the last element. Then it asks if they want to add another.. At this point, when they hit Y, it lets them add it and it says there are 5 spots left!
View 8 Replies
View Related
Nov 3, 2014
I'm trying to design a C program that ask the users to type their full name (seperate by a space), and store this name in a two dimensional array. I just want to test if I did it correctly, so i just entered one name and give it a try.
char name[50][2];
printf("enter the neame");
scanf("%s%s",&name[0][0],&name[0][1]);
printf("%s",name);
return 0;
but the program will not print the expected result.
View 4 Replies
View Related
Jun 3, 2013
It's really simple to say to a pointer to point to a sigle character or a single number.
Code: int *ptr;
int a = 5;
cout << *ptr << endl;
But I want for example a pointer to change a whole text line. My idea is that the user enters which language he speaks.
Code: cout << "English" << endl;
cout << "Swedish" << endl;
But I don't know how to this. I could have done this without pointers with if statments but I want to do it with pointers because it were a exercise to do.
View 3 Replies
View Related
Dec 5, 2013
So, I'm making a program in C++ that emulates a full screen console... I used SetCurrentConsoleFontEx to set the font to 12x16 but it sucks...
Anyway, I read here: [URL] .... that also the console font can be changed, but I can't make it work! How can i set the font to Lucida Console? This is the function I use to change font size:
void setFontSize(int x, int y) {
PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx = new CONSOLE_FONT_INFOEX();
lpConsoleCurrentFontEx->cbSize = sizeof(CONSOLE_FONT_INFOEX);
GetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, lpConsoleCurrentFontEx);
lpConsoleCurrentFontEx->dwFontSize.X = x;
lpConsoleCurrentFontEx->dwFontSize.Y = y;
SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, lpConsoleCurrentFontEx);
}
View 2 Replies
View Related