Olá galera este é meu primeiro tópico sobre programação... sou novato no linux e também em C,por isto não me levem a mal se eu não for claro em algum ponto da minha dúvida.
Primeiramente tenho tentado copiar strings com a função scanf() da biblioteca <stdio.h>,sendo que não funciona!!, já as outras funções pertencentes a mesma biblioteca funcionam perfeitamente, como a printf. Na realidade a scanf sim,mas parcialmente, ela só não copia strings,mas inteiros ,doubles etc etc ela faz tudo certinho,estranho não?
Vou postar a seguir um pequeno código que fiz e o erro que prossegue com a execução do mesmo:
#include <stdio.h>
int main(void){
char nome[30];
printf("Digite o seu nome:\n\n");
scanf("%s",&nome); //aqui está o erro...não sei o porque dele, pois em outros SO's funciona perfeitamente este método de copia de string.
printf("O seu nome e: %s ",nome);
}
Ao compilar o código acima com o comando g++ teste.cpp - teste, o terminal acusa o seguinte erro:
teste.cpp: In function ‘int main()’:
teste.cpp:6: warning: format ‘%s’ expects type ‘char*’, but argument 2 has type ‘char (*)[30]’
Não sou esses feras em inglês mas como assim %s espera um ponteiro para char? é isso que entendi,se estiver errado corrigam e me ajudem a resolver este erro, pois sem copia de string fica difícil construir quaisquer programas.