У меня есть file.txt
, содержащий некоторые переменные int. Мне нужно, чтобы преобразовать третью Grup чисел к Int array
поэтому я могу манипулировать данными, как я хочу:Преобразование строки (char) в массив (int)
EX: file.txt
============
111111 1001 20120131 30
122222 2002 20110230 25
133333 3003 20100325 12
144444 1001 20110526 18
155555 1001 20100524 25
166666 2002 20120312 30
177777 2003 20120428 28
188888 3003 20111214 15
199999 3002 20101113 27
199999 1001 20101202 29
133333 1001 20120715 25
155555 1001 20100204 24
177777 3003 20110102 30
Мне нужно прочитать файл построчно и я выбрал функцию fscanf
к этому:
FILE *fp;
int n1, n2, n4;
char n3[9];
int array[9]
[...]
while (fscanf (fp, "%d %d %s %d", &n1, &n2, n3, &n4);
Теперь, когда у меня есть моя строка, как я могу преобразовать ее в массив int? Я попытался с:
for (i = 0; i < strlen(n3); i++)
array[i] = atoi(strlen[i])
но это идет не так ... как я могу решить эту проблему?
возвращается ко мне:
warning: passing argument 1 of ‘atoi’ makes pointer from integer without a cast [enabled by default]
/usr/include/stdlib.h:148:12: note: expected ‘const char *’ but argument is of type ‘char’
Что означает 'strlen [i]'? 'strlen' - это функция, а не массив. –
strlen остается на длину строки n3 – Lc0rE
Стоит отметить, что «цифры» в третьем столбце выглядят так, будто они, вероятно, являются датами (формируются как YYYYMMDD), а не цифрами. Но я полагаю, вы можете обрабатывать их как ints, если хотите. (Например., обрабатывая их как ints, имеет смысл, если вы просто хотите сортировать по дате) –