question

como comparar um ponteiro, um numero inteiro em C?

não vai me deixar fazer enquanto (pt! = ' ') na linha de 76

# include<stdio.h>
# include<strings.h>
# include<stdlib.h>
# define tamanho 30
# define PEOPLE_SIZE 20
# define PRINT_NETWORK 1

struct //structure de pessoas para obter informações de usuários
{
char nome [tamanho];
int idade;
sexo char [tamanho];
int idnumber;
struct friendlist amigos;
};

typedef struct friendlist
{
int friendsname [PEOPLE_SIZE];
struct friendlist próximo;
struct pessoas pessoa;

} node_t;

void scan_friends (arquivo input2, node_t pt)
{
Char friend_name;

fscanf (input2, "%s", & pt-> friendsname);
}

Sub print_friends(node_t pt)
{
printf ("%s", pt.friendsname);
}

Sub print_list(node_t pt)
{

se (pt = = NULL)
printf ("A lista é empty\n");
outra coisa
{
/ / como percorrer a lista
enquanto (pt! = NULL)
{
enquanto (pt! = ' ')
{
print_friends(pt);
pt = pt-> seguinte;
}
}
}
}

void print_users (struct pessoa)
{
printf ("Nome: %s ID #: %d", person.name,person.idnumber); //Printing que apenas o nome de cada pessoa
printf("\n");
}

/ void print_friends (struct id de friendlist)
{
int i = 0;
para (i = 0; i<SIZE;i++)></SIZE;i++)>
{
printf ("%d", id.friendsname);
/ / printf("\n");
}

}/

void find_user (int idnumber, struct pessoa)
{
If(IdNumber == Person.IdNumber)
{
printf ("Nome: %s \nAge: %d \nGender: %s \nID#: %d \nFriends:",person.name,person.age,person.gender,person.idnumber);
}
}
int Main (void)
{
int opção = 0;
FILE entrada; //Pointer para people.dat

ARQUIVO input_friends;
int i = 0;
struct pessoas pessoas [tamanho];
struct friendlist de friendlist [PEOPLE_SIZE];
node_t headp, temp, atual = NULL;
Char user_name [tamanho];
usuário int;

printf ("Olá, bem vindo à rede Universidade do Arizona! \n");
printf ("para exibir todos os usuários dentro da rede, prima 1, para sair pressione qualquer outra tecla:");
fflush(stdin);
scanf ("%d", & escolha);

If(Choice==PRINT_NETWORK)
{
entrada = fopen ("people.dat", "r"); arquivo de pessoas //Open
input_friends = fopen ("friends.dat", "r"); arquivo de amigos //opens

para (i = 0; i<PEOPLE_SIZE; i++)=""></PEOPLE_SIZE;>
{
fscanf (entrada, "%s %d %s % d", & pessoas [i]. Name, &people[i].age,&people[i].gender,&people[i].idnumber);
print_users(People[i]); //Calling função de impressão do usuário para cada usuário na rede

}

printf ("para exibir uma lista de informações e amigo de usuários, digite sua ID number\n");
fflush(stdin);
scanf ("%d", &user); usuário de nome digitado //Saving

para (i = 0; i<SIZE;i++)></SIZE;i++)>
{
find_user(User,People[i]);
}

while(!feof(input_friends))
{
/ / criar um novo elemento de lista
Temp = (node_t ) malloc(sizeof(node_t)); / / memória
scan_friends (input_friends, temp); / / inicialização do elemento da lista
Temp-> Avançar / / configuração de ponteiro para null.

se (atual = = NULL)
{
headp = temp; / / configuração da cabeça da lista
}

outra coisa
{
corrente-> próximo = temp; / ligar mais a elemento anterior
}
atual = temp; / / Atualização do elemento atual

i + +; / / contar o número de elementos adicionados
}
fclose(input_friends);
print_list(headp);


}

printf("\n");
Return(0);
}</stdlib.h></strings.h></stdio.h>
resposta Resposta
Se você está procurando uma forma abreviada para verificar se o primeiro caractere do friendsname struct node_t ' ', você poderia fazer isso:

enquanto (pt (char )! = ' ') {

... mas por que não basta fazer isso:

enquanto (pt-> friendsname [0]! = ' ') {

Que não é seu único problema, aqui estão mais algumas coisas para corrigir:

. em node_t, deve ser friendsname: char friendsname [PEOPLE_SIZE];

. em scan_friends, friend_name não é usado e o fscanf deve ser:

fscanf (input2, "%s", pt-> friendsname);

. em main, o fscanf deve ser:

fscanf (entrada, "%s %d %s % d",

pessoas [i]. Name, & .age pessoas [i], pessoas [i] .gender, &people[i].idnumber);
ComentáriosComentários

Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved