Logo Hardware.com.br
FranciscoDB
FranciscoDB Novo Membro Registrado
2 Mensagens 0 Curtidas

Programação em linguagem C#

#1 Por FranciscoDB 19/06/2015 - 23:39
No programa eu leio uma string que esta num arquivo.txt eguardo num vetor string. Apos feito isso eu mostro na tela o que foi lido. Porém depois de feito isso eu queria comparar o valor guardado na string (no caso "livre") e realizar caso seja verdadeira o que esta contido na funçao if, mas nao da certo.
Alguém pode me esclarecer se isso pode ou nao fazer, ou o que estou errando.

[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]

void main(){
FILE *cham;
cham = fopen("arqq0.txt", "r");
if (cham == NULL){
printf("\nArquivo nao existe.\n");
return 0; }
char *raf[100];
char *var1[100];
int a;
fgets(raf, 100, cham);
printf ("\n%s", raf);
if(raf=="Livre"){
a=1;
printf("%i\n", a); }
fclose(cham);
return 0; }
DiguinDeveloper
DiguinDevelo... Super Participante Registrado
313 Mensagens 148 Curtidas
#2 Por DiguinDevelo...
20/06/2015 - 07:56
Comparações de string na linguagem C são feitas com a função strcmp(str1, str2) da biblioteca string.h

Onde para str1 ser igual a str2, precisa dar zero:

[code=C]
#include
#include
#include

void main() {
FILE *cham;
cham = fopen("arqq0.txt", "r");

if (cham == NULL) {
printf("\nArquivo nao existe.\n");
// return 0; deselegante
return EXIT_FAILURE; // elegante
}

char *raf[100];
char *var1[100];
int a;
fgets(raf, 100, cham);
printf ("\n%s", raf);

if (strcmp(raf, "Livre") == 0) {
a=1;
printf("%i\n", a);
} else {
printf("Strings diferentes!");
}

fclose(cham);
// return 0; deselegante
return EXIT_SUCCESS; // elegante
}
[/code]

Modifiquei o if conforme a função strcmp trabalha e tomei a liberdade de acrescentar um else informando se são diferentes

Aproveitei e já inclui boas práticas no seu código... onde você deixou os pontos de retorno (return 0), há duas constantes em C na biblioteca stdlib.h que você está usando que indicam quando o programa termina bem (EXIT_SUCCESS) e quando dá algum erro (EXIT_FAILURE). Isso ajuda na leitura do código e já que você está começando não custa nada começar a praticar certo?

Outra coisa, formate o seu código como explica nesse tópico, isso ajuda e muito a leitura dele deixando-o organizado

Espero ter ajudado.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal