Сценарий: у меня есть файл в следующем формате.
@209.161.198.176/28 209.161.198.160/28 88 : 88 80 : 80 0x11/0xFF
@203.124.178.48/28 203.124.183.192/28 123 : 123 23 : 23 0x11/0xFF
@175.54.90.240/28 209.161.199.160/28 53 : 53 21 : 21 0x11/0xFF
@175.54.96.176/28 209.161.199.160/28 123 : 123 544 : 544 0x11/0xFF
@5.220.189.176/28 5.220.186.176/28 750 : 750 123 : 123 0x11/0xFF
.../*and the file contain about 100000 lines*/
Каждая строка может быть разделена на 5 разделов.
//For example:
(@209.161.198.176/28) (209.161.198.160/28) (88 : 88) (80 : 80) (00x11/0xFF)
Мне нужно прочитать файл и сохранить его в 5 многомерных массивах для каждого раздела.Первое измерение будет какой строкой оно будет, второе будет хранить его строковое значение.
//For example, the array to store the first section might have the following structure:
[line0][@209.161.198.176/28]
[line1][@203.124.178.48/28]
[line2][@175.54.90.240/28]
...
(array[line][string])
Проблема в том, что я всегда получаю ошибку сегментации, и я не знаю почему.
Вот мой текущий код:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
FILE *f;
char file1[100000][100], file2[100000][100], file3[100000][100], file4[100000][100], file5[100000][100];
char file = argv[1];
f = fopen(file,"r");
fscanf(f,"%s %s %s %s %s", file1[0], file2[0], file3[0], file4[0], file5[0]);
printf("%c%c",fike1[0][0],file1[0][1]);
fclose(f);
return 0;
}
В строке 10 я пытаюсь прочитать первую строку.В строке 11 я пытаюсь распечатать первые 2 символа первого раздела строки 0.
Возможная проблема, о которой я могу подумать:
1) Я не могу открыть argv [1] напрямую, как это.
2) Возможно, мне нужно добавить *или & где-то, но я не могу его найти.
(ОАО)