открытие файла с именем пользователя (fopen в c) - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно получить имя пользователя от пользователя и открыть файл с его именем, если он уже существует. если файл не существует, мне нужно его создать. сейчас я не знаю, как это сделать. (в c)

является ли эта строка кода законной?

fopen("%s.txt", "r+", username);

и если нет, какие альтернативы у меня есть? может быть, есть лучший способ сделать это?

спасибо за помощь:)

Ответы [ 2 ]

4 голосов
/ 23 октября 2019

Попробуйте это:

char* ext = ".txt";
char* filename = malloc(strlen(username) + strlen(ext) + 1);
sprintf(filename, "%s%s", username, ext);
FILE* file = fopen(filename, "r+");
free(filename);
3 голосов
/ 23 октября 2019

У вас была правильная идея, но вы не использовали правильную функцию для этого.

char *filename = malloc(strlen(username) + strlen(".txt")+1);

if (filename) {
  sprintf(filename, "%s.txt", username);
  fopen(filename, "r+");
}
...