gpt4 book ai didi

c - 传递 `puts' 的 arg 1 使指针来自整数而不进行强制转换

转载 作者:太空狗 更新时间:2023-10-29 16:12:56 26 4
gpt4 key购买 nike

struct{
char nome[30],rua [50],bairro [20],cidade [30],se [3] ;
int na, exc, numero;
long int CEP;
}typedef endereco;

main(){
endereco agenda[20];
int i, j, opc, opc1=0, opc2, eopc ;
char pnome[30], pbairro[20], pcidade[30], enome[30];

while (opc!=4){
system("cls");
printf("Agenda facs, digite a opção: \n|\t1-incluir\t|\n|\t2-Consultar\t|\n|\t3-excluir\t|\n|\t4-sair\t |\nDigite a opção ");
scanf("%d",&opc);
fflush(stdin);
switch (opc){
case 1:
system("cls");
printf("Digite os Dados a seguir para incluir no # %d :\n",opc1+1);
agenda[opc1].na=opc1+1;
agenda[opc1].exc=0;
printf("Digite o nome: ");
gets(agenda[opc1].nome);
printf("Digite a Rua: ");
gets(agenda[opc1].rua);
printf("Digite o Bairro: ");
gets(agenda[opc1].bairro);
printf("Digite o numero: ");
fflush(stdin);
scanf("%d",&agenda[opc1].numero);
fflush(stdin);
printf("Digite a Cidade: ");
gets(agenda[opc1].cidade);
printf("Digite a Sigla do Estado: ");
gets(agenda[opc1].se);
printf("Digite o CEP: ");
fflush(stdin);
scanf("%d",&agenda[opc1].CEP);
fflush(stdin);
opc1++;
break;
case 2:
system("cls");
printf("\n|\t1-Nome\t|\n|\t2-Bairro\t|\n|\t3-Cidade\t|\n|\tDigite a opção ");
scanf("%d",&opc2);
printf("\t|\n");
fflush(stdin);
switch (opc2){
case 1:
system("cls");
printf("Qual o nome a procurar? ");
gets(pnome);
for(i=0;i<20;i++){
if(strcmp(pnome,agenda[i].nome)==0){
printf("\n\tNumero Agenda: ");
puts(agenda[i].na); printf("\n\tNome: ");
printf("\n\tNome: ");
puts(agenda[i].nome);
printf("\n\tRua: ");
puts(agenda[i].rua);
printf("\n\tBairro: ");
puts(agenda[i].bairro);
printf("\n\tNumero: ");
puts(agenda[i].numero);
printf("\n\tCidade: ");
puts(agenda[i].cidade);
printf("\n\tEstado: ");
puts(agenda[i].se);
printf("\n\tCEP: ");
puts(agenda[i].CEP);
printf("\n\t______________");}}
break;
case 2:
system("cls");
printf("Qual o Bairro a procurar? ");
gets(pbairro);
for(i=0;i<20;i++){
if(strcmp(pbairro,agenda[i].bairro)==0){
printf("\n\tNumero Agenda: ");
puts(agenda[i].na); printf("\n\tNome: ");
printf("\n\tNome: ");
puts(agenda[i].nome);
printf("\n\tRua: ");
puts(agenda[i].rua);
printf("\n\tBairro: ");
puts(agenda[i].bairro);
printf("\n\tNumero: ");
puts(agenda[i].numero);
printf("\n\tCidade: ");
puts(agenda[i].cidade);
printf("\n\tEstado: ");
puts(agenda[i].se);
printf("\n\tCEP: ");
puts(agenda[i].CEP);
printf("\n\t______________");}}
break;
case 3:
system("cls");
printf("Qual a Cidade a procurar? ");
gets(pcidade);
for(i=0;i<20;i++){
if(strcmp(pbairro,agenda[i].cidade)==0){
printf("\n\tNumero Agenda: ");
puts(agenda[i].na);
printf("\n\tNome: ");
puts(agenda[i].nome);
printf("\n\tRua: ");
puts(agenda[i].rua);
printf("\n\tBairro: ");
puts(agenda[i].bairro);
printf("\n\tNumero: ");
puts(agenda[i].numero);
printf("\n\tCidade: ");
puts(agenda[i].cidade);
printf("\n\tEstado: ");
puts(agenda[i].se);
printf("\n\tCEP: ");
puts(agenda[i].CEP);
printf("\n\t______________");}}
break;}
case 3:
system("cls");
printf("Digite o Numero da Agenda que deseja excluir");
gets(enome);
for(i=0;i<20;i++){
if(strcmp(enome,agenda[i].nome)==0){
printf("\n\tNumero Agenda: ");
puts(agenda[i].na);
printf("\n\tNome: ");
puts(agenda[i].nome);
printf("\n\tRua: ");
puts(agenda[i].rua);
printf("\n\tBairro: ");
puts(agenda[i].bairro);
printf("\n\tNumero: ");
puts(agenda[i].numero);
printf("\n\tCidade: ");
puts(agenda[i].cidade);
printf("\n\tEstado: ");
puts(agenda[i].se);
printf("\n\tCEP: ");
puts(agenda[i].CEP);
printf("\n\t______________");}}
printf("\n\tDigite o Numero Agenda do Nome na qual voce quer excluir: ");
fflush(stdin);
scanf("%d",&i);
fflush(stdin);
if(agenda[i].exc==0){
printf("\n\t%d . %s \n\tDeseja excluir esse contato?\n\t1-Sim\n\t2-Nao\n\tOpcao: ",agenda[i].na,agenda[i].nome);
fflush(stdin);
scanf("%d",&eopc);
fflush(stdin);
switch (eopc){
case 1:
agenda[i].exc=1;
printf("\t\nNumero excluido !");
break;
case 2:
printf("\t\nNumero nao excluido !");
break;}}}}



system("PAUSE");
return 0;
}

你好:D这个程序被构建或试图成为一个可以保存联系人的笔记本。但是我收到了这个警告,当程序中出现“puts”时,它崩溃了。有人可以帮忙吗?

[Warning] passing arg 1 of `puts' makes pointer from integer without a cast

谢谢。

最佳答案

puts(agenda[i].na);

在您的代码中,agenda[i].na 是一个 int。你不能用puts打印它,试试printf:

printf("%d\n", agenda[i].na);

and when the 'puts' come in the program, it crashes.

你在欺骗 puts 使用随机整数作为指针。

关于c - 传递 `puts' 的 arg 1 使指针来自整数而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com