Я пытался прочитать строки файла. Я хочу только то, что после пробела. Это код, который у меня есть:
void readFile()
{
char line[256]; /* linia */
int line_num = 0; /* numero de linia */
char resultat[4][256]; /* nom i valor del parametre els iguals els ignorem*/
int i=0;
int j=0;
int x=0;
FILE * f;
f = fopen(file_to_read, "r");
if (f==NULL) { fputs ("File error",stderr); exit (1); }
while(fgets(line, 256, f) != NULL) {
for (i=0;i<256;i++)
{
if (line[i]==' ')
{
j=0;
for (x=i+1; x<256 && line[x] != '\n';x++)
{
resultat[line_num][j]=line[x];
j++;
}
resultat[line_num][j] = '\0';
line_num++;
}
}
}
fclose(f);
Затем я сохраняю данные в структуре и печатаю ее.
Код работает в большинстве случаев, но иногда я получаю ошибку ошибки сегментации. Я пробую это с этим текстом.
№ SW-01
МАК 89F107457A36
Локальный хост сервера
Сервер-порт 2019
В чем может быть проблема?
for (i=0;i<256;i++)
наfor (i=0;line[i];i++)
- person Mayur   schedule 18.02.2019line_num
становится больше 3? Поскольку первое измерение массиваresultat
имеет только размерность 4. Вы можете отладить его или, по крайней мере, вывестиline_num
на стандартный вывод. - person Chris623   schedule 18.02.2019