Programar em C/Capa: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 1 623:
se o usuário digitar mais do que 10 caracteres incluindo o "\0", os caracteres adicionais serão colocados na área de memória subsequente à ocupada por ela, escrevendo uma região de memória que não está reservada à string. Este efeito é conhecido como "estouro de buffer" e pode causar problemas imprevisíveis. Uma forma de se evitar este problema é usar a função fgets (vamos utilizá-la mais tarde)
 
=== Função sprintf e sscanf ===
 
sprintf e sscanf são semelhantes a printf e scanf.
Porém, ao invés de escreverem na saída padrão ou lerem da entrada padrão, escrevem ou leem em uma string.
 
#include <stdio.h>
Linha 1 634 ⟶ 1 635:
printf( " Entre um valor inteiro: ");
scanf("%d", &i);
sprintf(string1,"Valor de i = %d", i); /*coloca na string1. a frase...*/
puts(string1);
return 0;
Linha 1 642 ⟶ 1 643:
 
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, k;
char string1[]= "10 20 30";
sscanf(string1, "%d %d %d", &i, &j, &k); /*lê para o string1*/
printf("Valores lidos: %d, %d, %d", i, j, k); /*imprime no ecrã*/
system ("pause");
return 0;
}