C :: Use Fgets And Sscanf To Read A Line Of Input
May 21, 2014
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.
Here's the code snippet:
Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define TEXT_LEN 64
void foo() {
char* inStr = (char*)malloc(sizeof(char)*TEXT_LEN);
memset(inStr, 0, TEXT_LEN);
}
[code]....
View 9 Replies
ADVERTISEMENT
Nov 5, 2014
I'm using fgets which will read a single line at a time, but unlike fgets I don't want it to return the new line char ( ) ?I want to be able to use printf to display the lines next to each other.
View 7 Replies
View Related
Sep 16, 2013
I have prepared a file through the use of following code
Code:
fprintf(file2, "%i %i %i %i %i %i
",
msg_id,
msg_size,
msg_period,
msg_deadline,
msg_producer,
msg_comsumer
);
As one can see, this file has tab separated integer entries. The file is written correctly, let us call this file "msg.txt".
I face the problem when I read this file, using fgets as follows:
Code:
char singleMessage[100];
while( fgets(singleMessage, sizeof(singleMessage), file ) )
{
puts(singleMessage);
sscanf(singleMessage, "%i %i %i %i %i %i
",
&first, &second, &third, &fourth, &fifth, &sixth);
fprintf(stderr, "first: %d, second: %d, third: %d, fourth: %d, fifth: %d, sixth: %d
",
first, second, third, fourth, fifth, sixth);
}
but fgets only retrieves until the first, i.e, if the first line in the file reads:
788004425
fgets returns only 78.
Does it have to do with how the file was written in the first place.
View 1 Replies
View Related
Dec 11, 2013
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_COL 70
#define MAX_ROW 20
}
[code]...
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?
View 5 Replies
View Related
Apr 20, 2013
Code:
char line[BUFSIZ];
while ( fgets(line, sizeof line, file) != NULL ){
llen = strlen(line);
printf("%d - %s
",llen,line);
}
I get a full line printed but my llen is the size of my buffer. how do i get the total size om my line from the beginning to " "
View 3 Replies
View Related
Mar 13, 2013
I want to be able to read 2 line input, then safe them in separate arrays.
line1 input=array1
line2=array2
View 7 Replies
View Related
Mar 21, 2013
Here's my code, it's for a poker hand evaluator
input:
'ad 2d 3d 4d 5d...
...4s 5s 6s 7s 8s'
I think it should go through all the 10 crads and disply the name of each card, but it seems to only do it for the second hand
Code:
include <stdio.h>
#include <ctype.h>
int main( void ) {
char inputtedhand[64];
int z=0, counter=0;
int index;
int i=0,m=0,n=0;
[Code].....
View 3 Replies
View Related
Mar 12, 2013
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..
View 2 Replies
View Related
Apr 13, 2014
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.
Code:
while(fp!='
'){
fgets(password, 256, fp);
}
View 2 Replies
View Related
Aug 3, 2014
I am having an issue with the statement "Both the input and output files' names should be read from the command line." I don't understand what this means or what I need to do.
View 4 Replies
View Related
May 27, 2013
I am trying to use fgets to read in a string, but keep getting a "no conversion function from std::string to char" error.
View 2 Replies
View Related
Oct 12, 2014
Intead of using scanf("%d",&a) to take a input from the user,how to take a input using fgets(buffer, BUFFERSIZE , stdin) and atoi?
View 1 Replies
View Related
Mar 7, 2014
How can a mulitline string be read line by line
ex: str = "PERIOD="week"
DAY="day"
TIME="time"";
View 2 Replies
View Related
Jul 5, 2013
I have a text file (test.txt) with the following data:
01,05,25,20130728
01,06,25,20130728
01,07,25,20130728
01,08,25,20130728
01,05,25,20130728
01,05,25,20130728
01,05,45,20130728
01,05,65,20130728
01,05,85,20130728
01,05,35,20130728
01,05,25,20130728
01,05,35,20130728
I want to read this to one string called line. So far I have this code:
string line;
ifstream myfile ("/home/Test.txt");
if (myfile.is_open()) {
while (myfile.good()) {
getline (myfile, line);
for (int a = 0; a <= 335; a++) {
cout <<line.at(a);
} }
myfile.close();
}
so far its only printing the first line and then throwing an instance of 'std::out_of_range'
View 2 Replies
View Related
Oct 5, 2013
I need to read a text file which has various lines containing integers. I need to write those integers separately in a vector. Example, the first line of the text file contains 3 9 8 7 6 so vector[4]=3, vector[3]=9, vector[2]=8 and so on. Next read the second line 4 1 2 3 4 5 and write to another vector vector[5]=4, vector[4]=1...
I tried the code below but it will write from the second line, the whole line in one vector index.
int str; // Temp string to
cout << "Read from a file!" << endl;
ifstream fin("functions.txt"); // Open it up!
string line;
// read line count from file; assuming it's the first line
getline( fin, line );
[Code]...
View 1 Replies
View Related
Jun 27, 2014
I'm reading strings one after another and trying to split it using strtok_r. This doesnot seem to be working
I have a .gz file from which I'm reading the data into the buffer in chunks.
The below code works fine only for the first chunk on data. Later it just breaks out.
while(1) {
char buffer[SIZE];
int bytes_read = gzread (f, buffer, SIZE - 1);
[Code] .....
View 3 Replies
View Related
Jul 2, 2013
I have an external file with one column of data. If I have a counter value let say counter =1, and counter++ and so on. How I can write such a c++ code that if the value of counter and value from the external file are same then generate an action let say cout both values i.e. value of counter and value from external file.
for more information, here is an example:
data in file(in one column): 2 6 8 9 10...
value of counter : 1 2 3 4 5 6 7 8 9...
then cout values only if value of counter and value from the file is same.
Here is my code so far, but it does not seem to work;
#include<iostream>
#include<fstream>
using namespace std;
int main() {
const int SIZE = 10; //Size declaration of array
int hours[SIZE]; //Array declaration
[Code]...
View 12 Replies
View Related
Jan 23, 2015
I am reading my file (20GB) line by line using boost like this
PHP Code:
boost::interprocess::file_mapping* fm = new boost::interprocess::file_mapping("E:Mountain.7z", boost::interprocess::read_only);
boost::interprocess::mapped_region* mr = new boost::interprocess::mapped_region(*fm, boost::interprocess::read_only);
char* bytes = static_cast<char*>(mr->get_address());
An exception is thrown in the second line while allocating memory for mr.
I use boost because it can also work in Mac which my code will be ported to.
View 3 Replies
View Related
May 30, 2014
I have a problem in my code and after hours of looking I really cannot find out what is the problem.I use scanf to to parse lines of a file, let me copy only the important part:
Code:
/*File read...everything is fine*/
int seq_1, seq_i2;
int len;
while(fgets(&line[strlen(line)], line_length, file)!= NULL) {
}
[code]....
if (num_sc ==4) //the wanted format, do something So I am allocating all variables, and giving to sscanf pointers, so I really don't get where the segmentation fault appears.I checked with the debugger, the first line of the file is read, but at the second it crashes at the line of sscanf! The two lines don't have the format I want in sscanf but therefore I check if this number is 4 and then do other stuff to the data...
View 9 Replies
View Related
Jan 23, 2014
I am beginner at C and I was working on a program where I have to read in a line such as Digit, String, Float. The string can have any amount of spaces between it. and each input is separated by a space character.
The input is of the format:
10000000000 hello my n ame is 30.2
So I used fgets(x,100,stdin) to read the line in.
So I need to read that line into an int, array, and float.. so I was thinking of using this:
sscanf(x, "%d %[^/n] %f", &number, &username, &numberfloat);
Now, obviously I can't use the /n to read in the username with spaces because I need to read the 30.2 into a float variable.
View 5 Replies
View Related
Jan 23, 2015
I'm trying to read in 3 values from the first line in a file. I want to take those 3 values and store them into 3 variables.
char buffer[100];
if((fgets(buffer, sizeof buffer, in) != NULL))
{
printf("current buffer is %s", buffer);
double tmpPrePrice, tmpDoorPrice;
int tmpTicCount;
int a = sscanf(buffer, "%d %d %d", &tmpPrePrice, &tmpDoorPrice, &tmpTicCount);
printf("applied %d variables %d %d %d", a, tmpPrePrice, tmpDoorPrice, tmpTicCount);
}
The input is
15 25 200
And the result:
current buffer is 15 25 200
applied 3 variables 15 0 25
any reason these aren't being stored properly?
View 3 Replies
View Related
Nov 19, 2013
How do i read the end of the line in a txt or dat file? I treid using fscanf in a while loop like this
Code:
while(fscanf(pfile,"%c") != EOF && fscanf(pfile,"%c") != '') {
char c = ' ';
fscanf(pfile,"%c",&c);
str += c;
}
The reason why its important to stop after each line is that i need the program to read the data from each line separately.
View 2 Replies
View Related
Oct 9, 2014
I want to store the address of a customer (with spaces) in a char variable (say cadd). First I tried to use "cin", as we know it reads until it sees any whitespace. So it reads only first word before a white space. So, I used "getline()" function. But when I used it, It didn't wait for the I/P (it skipped it).
char cadd[20];
std::cout<<"Enter Customer Address:
";
std::cin>>cadd;
std::cout<<"Enter Customer Address:
";
std::cin.getline(cadd,20);
View 1 Replies
View Related
Dec 2, 2013
I have been working on a program to scanfile and whenever it encounters what the user wanted it prints it, and it is all right less the first line of the file that the program jumps,
Code:
#include<stdio.h>#include<string.h>
#include<stdlib.h>
void main()
{
unsigned int j=0 ;
char num[100] , str1[100], str2[100];
FILE *fp;
[Code]....
View 3 Replies
View Related
Aug 16, 2013
I am making a script to read the latest from a text file. It picks up the line by numbytes in fseek, but the data line may vary and numbytes not be accurate, how can I fix this?
And another problem is that the line has, date, time, value, separated by space, how to read that line and put these 3 information in variable?
#include <stdio.h>
#include <conio.h>
int main() {
FILE *arq;
char Line[100];
char *result;
int tam, i;
// Opens a file for READING TEXT
arq = fopen("temp.txt", "rt");
[code].....
View 19 Replies
View Related
Jun 28, 2014
I started learning programming a few days ago and i'm having trouble with reading each line from a listbox this is the code i'm having trouble with
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string[] getFlies
{
get;
set;
[Code]....
What am I doing wrong?
View 5 Replies
View Related