Я читаю текстовый файл, в котором есть строка на каждом имени. Мне нужно сгенерировать случайное число от 0 до 99, чтобы определить индекс имени для выбора. Когда я использую метод fscanf () и затем пытаюсь отобразить прочитанную строку, выводится пустая строка. Я проверил это, и я ввожу оператор if, чтобы назначить строку для переменной, кажется, есть проблема с назначением имени.
int indexOfName = rand() % 100;
printf("%d\n", indexOfName);
FILE *fileOfNames;
char str[30];
char *filename = "theFilePath";
fileOfNames = fopen(filename, "r");
rewind(fileOfNames);
if (fileOfNames == NULL)
{
printf("Could not open file %s", filename);
return 1;
}
int i = 0;
while (fgets(str, 30, fileOfNames) != NULL)
{
if (i == indexOfName)
{
fscanf(fileOfNames, "%s", str);
}
i++;
}
printf("%s\n", str);
fclose(fileOfNames);
return 0;