#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 50
struct employee
{
char *empname;
char *empid;
int age;
char *addr;
};
int main()
{
FILE *fp = NULL;
int i = 0;
struct employee var = {NULL, NULL, 0, NULL};
char line[SIZE] = {0}, *ptr = NULL;
/* uncommented in your code - Here reading from stdin instead
// Open file for Reading
if (NULL == (fp = fopen("file.txt","r")))
{
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
*/
/* Allocate Memory */
/* Uncomment Below line - Here Reading from stdin
while (EOF != fscanf(fp, "%s", line))
*/
while (EOF
!= fscanf(stdin
, "%s", line
)) {
/* 1. Read each line from the file */
printf("\n\n Read line: %s\n", line
);
/* 2. Tokenise the read line, using "\" delimiter*/
var.empname = ptr;
while (NULL
!= (ptr
= strtok(NULL
, "\\"))) {
i++;
printf("=====%d==== ptr: %s\n", i
, ptr
);
/* 3. Store the tokens as per structure members , where (i==0) is first member and so on.. */
if(i == 1)
var.empid = ptr;
else if(i == 2)
else if (i == 3)
var.addr = ptr;
}
i = 0;
printf("After Reading: EmpName:[%s] EmpId:[%s] Age:[%d] Addr:[%s]\n", var.
empname, var.
empid, var.
age, var.
addr); }
//fclose(fp);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI2luY2x1ZGUgPHN0ZGxpYi5oPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI2luY2x1ZGUgPHN0cmluZy5oPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI2RlZmluZSBTSVpFIDUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKc3RydWN0IGVtcGxveWVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIGNoYXIgKmVtcG5hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIGNoYXIgKmVtcGlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIGludCBhZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIGNoYXIgKmFkZHI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKaW50IG1haW4oKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIEZJTEUgKmZwID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIGludCBpID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIHN0cnVjdCBlbXBsb3llZSB2YXIgPSB7TlVMTCwgTlVMTCwgMCwgTlVMTH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIGNoYXIgbGluZVtTSVpFXSA9IHswfSwgKnB0ciA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgCiAgICAvKiB1bmNvbW1lbnRlZCBpbiB5b3VyIGNvZGUgLSBIZXJlIHJlYWRpbmcgZnJvbSBzdGRpbiBpbnN0ZWFkIAogICAKICAgIC8vIE9wZW4gZmlsZSBmb3IgUmVhZGluZyAKICAgIGlmIChOVUxMID09IChmcCA9IGZvcGVuKCJmaWxlLnR4dCIsInIiKSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBwZXJyb3IoIkVycm9yIHdoaWxlIG9wZW5pbmcgdGhlIGZpbGUuXG4iKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgKi8KCiAgICAvKiBBbGxvY2F0ZSBNZW1vcnkgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICB2YXIuZW1wbmFtZSA9IG1hbGxvYyhTSVpFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICB2YXIuZW1waWQgPSBtYWxsb2MoU0laRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICB2YXIuYWRkciA9IG1hbGxvYyhTSVpFKTsgICAgICAgICAgCiAgICAKICAgIC8qIFVuY29tbWVudCBCZWxvdyBsaW5lIC0gSGVyZSBSZWFkaW5nIGZyb20gc3RkaW4gCiAgICB3aGlsZSAoRU9GICE9IGZzY2FuZihmcCwgIiVzIiwgbGluZSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAqLwogICAgCiAgICB3aGlsZSAoRU9GICE9IGZzY2FuZihzdGRpbiwgIiVzIiwgbGluZSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgLyogMS4gUmVhZCBlYWNoIGxpbmUgZnJvbSB0aGUgZmlsZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgcHJpbnRmKCJcblxuIFJlYWQgbGluZTogICVzXG4iLCBsaW5lKTsgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC8qIDIuIFRva2VuaXNlIHRoZSByZWFkIGxpbmUsIHVzaW5nICJcIiBkZWxpbWl0ZXIqLyAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIHB0ciA9IHN0cnRvayhsaW5lLCAiXFwiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIHByaW50ZigicHRyIGF0IDolc1xuIiwgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgdmFyLmVtcG5hbWUgPSBwdHI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgd2hpbGUgKE5VTEwgIT0gKHB0ciA9IHN0cnRvayhOVUxMLCAiXFwiKSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGkrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHByaW50ZigiPT09PT0lZD09PT0gcHRyOiAlc1xuIiwgaSwgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAvKiAzLiBTdG9yZSB0aGUgdG9rZW5zIGFzIHBlciBzdHJ1Y3R1cmUgbWVtYmVycyAsIHdoZXJlIChpPT0wKSBpcyBmaXJzdCBtZW1iZXIgYW5kIHNvIG9uLi4gKi8KICAgICAgICAgICAgaWYoaSA9PSAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhci5lbXBpZCA9IHB0cjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgZWxzZSBpZihpID09IDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhci5hZ2UgPSBhdG9pKHB0cik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgZWxzZSBpZiAoaSA9PSAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhci5hZGRyID0gcHRyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBpID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBwcmludGYoIkFmdGVyIFJlYWRpbmc6IEVtcE5hbWU6WyVzXSBFbXBJZDpbJXNdIEFnZTpbJWRdIEFkZHI6WyVzXVxuIiwgdmFyLmVtcG5hbWUsIHZhci5lbXBpZCwgdmFyLmFnZSwgdmFyLmFkZHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIC8vZmNsb3NlKGZwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgcmV0dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA=