Когда вы пишете свой путь, вы делаете
strcat(verz,"C:/Users/");
strcat(verz,username);
strcat(verz,"/Destktop/test.txt");
Проблема в том, что verz
не инициализируется, поэтому первый strcat
вызывает неопределенное поведение , поскольку строка не пуста / завершается нулем.
Результаты могут отличаться, в вашем случае имя файла недопустимо и файл не создается, но вы этого не знаете, поскольку не проверяете возвращаемое значение fopen
:
fp = fopen(verz, "w");
fprintf(fp, "%s",text);
Быстрое исправление будет:
strcpy(verz,"C:/Users/");
Одна строка с sprintf
, быстрее и понятнее:
sprintf(verz,"C:/Users/%s/Desktop/test.txt",username);
fp = fopen(verz, "w");
if (fp!=NULL)
{
fprintf(fp, "%s",text);
fclose(fp); // better close the file
}