Article name does not let enter

Asked

Viewed 24 times

1

I want to enter the name of the article only that it does not allow, I already made the same way the scanf as the name of the supplier but does not allow to enter equal

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int main(int argc, char** argv) {
char nome[50];// Recebe o nome do Fornecedor
char morada[100];// Recebe a morada do Fornecedor
char cdpst[20];// Recebe o código postal(CTT) do Fornecedor
long int numfisc;// Numero Fiscal do Fornecedor
long int numide;// Numero Identificação do Fornecedor
char artigo[30];// Recebe o nome do Fornecedor
int qtd;// Quantidade do artigo

printf("Introduza o nome do fornecedor:\n");
scanf("%[^\n]s",nome);// Lê várias palavras do nome
getchar();//A função getchar() lê um caracter e retorna um inteiro
printf("Introduza a morada:\n");
scanf("%[^\n]s",morada);// Lê várias palavras da morada
getchar();//A função getchar() lê um caracter e retorna um inteiro
printf("Introduza código postal:\n");
scanf("%[^\n]s",cdpst);
getchar();//A função getchar() lê um caracter e retorna um inteiro
printf("Introduza o seu  numero fiscal:\n");
scanf("%d",&numfisc);
printf("Introduza o numero de fornercedor:\n");
scanf("%ld",&numide); 
printf("Introduza o nome do artigo:\n");
scanf("s",&artigo);
printf("Introduza quantidade entregue do artigo:\n");
scanf("%d",&qtd);
//printf("o fornecedor %s\ncom morada em %s\ncom o código postal %s\ncom o Nº Fiscal %ld\ne o Nº de Fornecedor %ld\nentregou %d unidades\ndo artigo %s",nome,morada,cdpst,numfisc,numide,qtd,artigo);

FILE * fp = fopen("Report Fornecedor.txt", "w+");
if (!fp) {
perror(strerror(errno)); // inclua os headers  string.h  e  errno.h
return EXIT_FAILURE; // inclua stdlib.h
}
{
fprintf(fp,"o fornecedor %s\ncom morada em %s\ncom o codigo postal %s\ncom o Nº Fiscal %ld\ne o Nº de Fornecedor %ld\nentregou %d unidades\ndo artigo %s",nome,morada,cdpst,numfisc,numide,qtd,artigo);
}
fclose(fp);
return (EXIT_SUCCESS);             
}

The output of the program is as follows:

Introduza o nome do fornecedor:
Pecol
Introduza a morada:
Rua da Estrela 25
Introduza código postal:
6000-555
Introduza o seu  numero fiscal:
25555555
Introduza o numero de fornercedor:
1
Introduza o nome do artigo:
Introduza quantidade entregue do artigo:
1000

1 answer

2

The problem is here:

scanf("s",&artigo);

What you wanted was this:

scanf("%[^\n]", artigo);
  • After which group?

  • have, made this scanf("%[ n]s", article); and still do not give, I have so for the name as I have in the code and for this worked just for the article is not giving

  • @Jeffersonquesado Is without the same.

  • So it’s like ? I already took the s and still don’t give

Browser other questions tagged

You are not signed in. Login or sign up in order to post.