#include <stdio.h>
int main() {
FILE *f;
unsigned int num[80];
int i=0;
int rv;
int num_values;
f=fopen("values.txt","r");
if (f==NULL){
printf("file doesnt exist?!\n");
return 1;
}
while (i < 80) {
rv = fscanf(f, "%x", &num[i]);
if (rv != 1)
break;
i++;
}
fclose(f);
num_values = i;
if (i >= 80)
{
printf("Warning: Stopped reading input due to input too long.\n");
}
else if (rv != EOF)
{
printf("Warning: Stopped reading input due to bad value.\n");
}
else
{
printf("Reached end of input.\n");
}
printf("Successfully read %d values:\n", num_values);
for (i = 0; i < num_values; i++)
{
printf("\t%x\n", num[i]);
}
return 0
}
Получил приведенный выше код из другого вопроса, но при наличии проблем, редактирующих его в соответствии с моими требованиями, каждый раз, когда я меняю его, кажется, что ошибка везде.
Это простоизменить aswell.
Пример ввода из файла будет 12345678
87654321
1234567811
12345678
При чтении из файлаиспользуя этот метод, возьмите всю каждую строку, когда я только хочу, чтобы она взяла первые 8 шестнадцатеричных чисел и сохранила их.
Я попытался использовать fgets для получения строки, а затем scanf для ее форматирования, но ошибки простовыйти из-под контроля.
Идея, которая у меня возникла в голове, но я просто не знаю, как ее реализовать: 1. Открыть файл
fgets текущая строка
scanf для форматирования текущей строки
Получение первых 8 цифр
Сохранение их в массив
цикл до конца файла (а не <80, как в коде above) </p>
Я новичок в c и привык к java.