It is common to read until end of file, but I am interested in how could I read data (a series of numbers) from a text file until the end of a line? I got the task to read several series of numbers from a file, which are positioned in new lines. Here is an example of input:
1 2 53 7 27 8
67 5 2
1 56 9 100 2 3 13 101 78
First series: 1 2 53 7 27 8
Second one: 67 5 2
Third one: 1 56 9 100 2 3 13 101 78
I have to read them separately from file, but each one till the end of line. I have this code:
#include <stdio.h>
FILE *fp;
const char EOL = '\\0';
void main()
{
fp = fopen("26.txt", "r");
char buffer[128];
int a[100];
int i = 0;
freopen("26.txt","r",stdin);
while(scanf("%d",&a[i])==1 && buffer[i] != EOL)
i++;
int n = i;
fclose(stdin);
}
It reads until the end of the file, so it doesn't do quite what I would expect. What do you suggest?
Use fgets() to read a full line, then parse the line (possibly with strtol()).
You can see the code running at ideone.
The \n should be the escape for new line, try this instead
did u get it working? this should help: