It would be helpful to see the declaration for data and some of the others to really understand the full context. I may be confused on some of the details, but here's my guesswork.
Code:
#include <stdio.h>
#include <string.h>
struct MyData
{
char periodicidade[50];
char path[400];
int controle;
};
int main(void)
{
static const char filename[] = "file.txt";
FILE *file = fopen(filename, "r");
if ( file != NULL )
{
char line[256];
struct MyData data[100];
size_t i = 0, j = i;
while ( fgets(line, sizeof line, file) != NULL )
{
int n;
char *ptr = strchr(line, '\n');
if ( ptr != NULL )
{
*ptr = '\0';
}
ptr = line;
while ( sscanf(ptr, "%d%*1c%n", &data[i].controle, &n) == 1 )
{
ptr += n;
sprintf(data[i].periodicidade, "%d", data[i].controle);
printf("data[%lu].controle = %d\n", (long unsigned)i,
data[i].controle);
printf("data[%lu].periodicidade = \"%s\"\n", (long unsigned)i,
data[i].periodicidade);
if ( ++i >= sizeof data / sizeof *data )
{
puts("out of room");
goto done;
}
}
for ( ; j < i; ++j )
{
strcpy(data[j].path, ptr);
printf("data[%lu].controle = \"%s\"\n", (long unsigned)j,
data[j].path);
}
}
done:
puts("---Input Complete---");
for ( j = i, i = 0; i < j; ++i )
{
printf("data[%lu] : { \"%s\", \"%s\", %d }\n", (long unsigned)i,
data[i].periodicidade, data[i].path, data[i].controle);
}
}
return 0;
}
/* my output
data[0].controle = 1
data[0].periodicidade = "1"
data[1].controle = 10
data[1].periodicidade = "10"
data[2].controle = 20
data[2].periodicidade = "20"
data[3].controle = 30
data[3].periodicidade = "30"
data[4].controle = 40
data[4].periodicidade = "40"
data[5].controle = 50
data[5].periodicidade = "50"
data[0].controle = "/tmp/echo2.sh"
data[1].controle = "/tmp/echo2.sh"
data[2].controle = "/tmp/echo2.sh"
data[3].controle = "/tmp/echo2.sh"
data[4].controle = "/tmp/echo2.sh"
data[5].controle = "/tmp/echo2.sh"
data[6].controle = 25
data[6].periodicidade = "25"
data[7].controle = 55
data[7].periodicidade = "55"
data[6].controle = "/usr/bin/php /html/echo4.php"
data[7].controle = "/usr/bin/php /html/echo4.php"
---Input Complete---
data[0] : { "1", "/tmp/echo2.sh", 1 }
data[1] : { "10", "/tmp/echo2.sh", 10 }
data[2] : { "20", "/tmp/echo2.sh", 20 }
data[3] : { "30", "/tmp/echo2.sh", 30 }
data[4] : { "40", "/tmp/echo2.sh", 40 }
data[5] : { "50", "/tmp/echo2.sh", 50 }
data[6] : { "25", "/usr/bin/php /html/echo4.php", 25 }
data[7] : { "55", "/usr/bin/php /html/echo4.php", 55 }
*/