Каждый раз, когда я запускаю этот код, значение, которое я приписываю переменной имени файла, не привязывается.Обычно я пытаюсь назвать это примером, и прежде чем дать ему значение, и сразу после него, оно принимает дико отличающееся значение, например:, G, / etc
Я попытался инициализироватьЗначение для нескольких разных вещей, попытался изменить тип переменной с char на string, когда я изменил тип переменной на string, он сразу перестал работать и зависал, как только я дал ему значение, я поигрался с положением сканированияЯ поместил его в условие If, и теперь я получил его из условия If, я смотрю на него довольно долго, но, похоже, не могу найти проблему.У меня есть условие If, потому что есть также возможность для диска D, но мне кажется, что проблема не в этом, может быть, я ошибаюсь.
int filemode()
{
char filename;
printf("\n Qual a “drive” onde reside o ficheiro? [ C, D ] \n");
scanf_s(" %c", &drive);
printf("\n Qual o nome do ficheiro de dados? \n");
scanf_s(" %c", &filename);
if ((drive == 'C') || (drive == 'c'))
{
sprintf(name_arch, "C:\\ISEL\\PC\\%c.txt", &filename);
printf("\n\n Caminho do ficheiro: ");
printf(" %s", &name_arch);
fprintf(fescrita, "\n\n Caminho do ficheiro: ");
fprintf(fescrita, "%s \n\n\n", &name_arch);
fleitura = fopen(name_arch, "r");
if (fleitura == NULL)
{
puts("\n Erro.");
fprintf(fescrita, "\n Codigo do erro %d \n", erro);
system("pause");
system("CLS");
filemode();
}
}
Я не понимаюлюбые сообщения об ошибках, код запускается, но не так, как мне бы хотелось, если он работал правильно, указав имени файла значение примера, который он оставил бы в качестве примера, name_arch был бы C: \ ISEL \ | PC \ example.txt.и это создаст файл для чтения по этому пути.Пожалуйста, помогите мне здесь.