我正在写作 插入书籍的功能。该功能是 inslivros(); 。这是代码:
int inslivros()
{
char livro[30];
int categoria;
printf("Qual é o nome do livro que vai inserir?\n-> ");
gets(livro);
printf("Qual é a categoria do livro?\n1- Romance\n2- História\n-> ");
scanf("%d", &categoria);
if(categoria == 1)
{
FILE *livros;
livros = fopen("C:\Livros\inserelivros.txt", "w+");
fputs(livro, livros);
fclose(livros);
FILE *romance;
romance = fopen("C:\Livros\romance.txt", "w+");
fputs(livro, romance);
fclose(romance);
system("cls");
printf("Livro inserido com Sucesso!\n");
}
else
{
int escolha;
system("cls");
printf("Nome inválido!\n");
printf("1- Adicionar livro\n0- Voltar para o menu\n-> ");
scanf(escolha);
switch(escolha)
{
case 1:
system("cls");
inslivros();
case 2:
system("cls");
main();
}
}
}
当categoria == 1时,不会创建文件夹和文件。我哪里出错了?
答案 0 :(得分:2)
当categoria == 1时,未创建文件夹和文件。我哪里出错了?
fopen
不会为您创建文件夹/目录 - 它只会创建文件。因此,如果在运行程序时不存在C:\Livros
,则程序将失败。
要创建文件夹/目录,请查看mkdir
答案 1 :(得分:0)
以下提议的代码:
<user name="userA" password="userApass" authorities="ROLE_A" />
<user name="userB" password="userBpass" authorities="ROLE_B" />
protected String determineTargetUrl(Authentication authentication) {
boolean isUserA = false;
boolean isUserB= false;
Collection<? extends GrantedAuthority> authorities
= authentication.getAuthorities();
for (GrantedAuthority grantedAuthority : authorities) {
if (grantedAuthority.getAuthority().equals("ROLE_A")) {
isUserA = true;
break;
} else if (grantedAuthority.getAuthority().equals("ROLE_B")) {
isUserB = true;
break;
}
}
if (isUserA) {
return "/pageA.html";
} else if (isUserB) {
return "/pageB.html";
} else {
throw new IllegalStateException();
}
}
的调用也应该进行错误检查我会留给您使用fputs()
来创建任何丢失的目录。
请记住检查mkdir
的呼叫是否成功,或者在第一次运行程序时是否成功,可能会也可能不会成功。程序的所有后续运行都应该mkdir
失败。
现在建议的代码:
mkdir