Как я могу сканировать номера из текстового файла с начала на EOF и хранить их в массиве? [Дубликат]

Как и все остальные, прежде чем вы сможете использовать $_SERVER['REMOTE_ADDR']; для получения IP-адреса клиента.

Кроме того, если вам нужна дополнительная информация о пользователе, вы можете использовать это:

" . $clientDetails->country . "";
?>

Более подробная информация клиента находится в $ clientDetails. Вы можете получить json-элементы, хранящиеся в переменной $ clientDetails следующим образом: $ clientDetails-> PostalCode / hostname / region / loc ...

Я использую ipinfo.io , чтобы получить Дополнительная информация.

Надеюсь, это поможет.

12
задан Sicco 21 August 2012 в 09:37
поделиться

3 ответа

fscanf - «При успешном завершении функция возвращает количество успешно прочитанных элементов. Этот счет может соответствовать ожидаемому количеству показаний или быть менее-равно нулю - в случае сбоя соответствия. входной сбой, прежде чем какие-либо данные могут быть успешно прочитаны, возвращается EOF. "

Итак, вместо того, чтобы ничего не делать с возвращаемым значением, как вы сейчас, вы можете проверить, является ли это == EOF.

Вы должны проверить EOF, когда вы вызываете fscanf, а не проверяете слот массива для EOF.

12
ответ дан prelic 19 August 2018 в 11:35
поделиться
  • 1
    мы предоставили только входную матрицу, поэтому очевидно, что счет не указан. В программе принято, поскольку я не могу найти EOF через fscanf – karthik 21 August 2012 в 06:08
  • 2
    while (fscanf (input, "% s", arr)! = EOF) {fscanf (входной сигнал,% s ", arr); Len = STRLEN (обр); Е (& Quot;% s \ т & Quot;, обр); } – karthik 21 August 2012 в 06:10
  • 3
    то как можно остановиться на EOF через fscanf? – karthik 21 August 2012 в 06:19
  • 4
    Что вы имеете в виду? Многие люди в этой теме продемонстрировали, как остановить, когда fscanf возвращает EOF. Ответ ниже, комментарий выше ... что-то вроде: while(fscanf(input,"%s",arr) != EOF) {...}. Когда конец файла будет достигнут, fscanf вернет EOF, который цикл while поймает, и больше ничего не будет прочитано. Фактически, вы можете использовать это, чтобы вычислить свою переменную count. – prelic 21 August 2012 в 06:23
while (fscanf(input,"%s",arr) != EOF && count!=7) {
  len=strlen(arr); 
  count++; 
}
6
ответ дан perilbrain 19 August 2018 в 11:35
поделиться
  • 1
    мы предоставили только входную матрицу, поэтому очевидно, что счет не указан. В программе это взято, поскольку я не могу найти EOF через fscanf. – karthik 21 August 2012 в 05:59
  • 2
    @aakasha: - просто удалите его;) – perilbrain 21 August 2012 в 06:01
  • 3
    Как вы можете это сделать, без учета? – delive 30 April 2017 в 04:28

Если у вас есть целые числа в вашем файле, fscanf возвращает 1 до тех пор, пока не произойдет целое число. Например:

FILE *in = fopen("./task.in", "r");
int length = 0;
int counter;
int sequence;

for ( int i = 0; i < 10; i++ ) {
    counter = fscanf(in, "%d", &sequence);
    if ( counter == 1 ) {
        length += 1;
    }
}

Чтобы узнать конец файла с символами, вы можете использовать EOF. Например:

char symbol;
FILE *in = fopen("./task.in", "r");

for ( ; fscanf(in, "%c", &symbol) != EOF; ) {
    printf("%c", symbol); 
}
2
ответ дан transversus 19 August 2018 в 11:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: