Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou usando fgets para ler uma string e atribuir uma variável. Esta variável é um vetor.
Dentro do laço há outra variável que receberá dados do tipo inteiro (que será atribuido com scanf) do teclado. A primeira variável é que recebe os dados lidos com fgets. Portanto ficaria assim:
fgets(variável, int, stdin). Supondo que o valor int seja 10, a string teria 9 caracteres. Se os dados digitados não passam o limite tudo ocorre normalmente e a próxima variável dentro do laço é executada. Mas se os dados digitados passam o limite, a variável abaixo, dentro do laço, não é executada, o contador é incrementado e o laço inicia novamente a execução, pulando a primeira variável (que não sei se fica vazia ou recebe o excedente que foi digitado anteriormente) que seria atribuída com fgets, e para na segunda variável que recebe dados do tipo inteiro com scanf.
O que da a entender é que dos dados excedentes são atribuídos à variável logo abaixo.
Gostaria de saber o que acontece quando são digitados mais dados do que o definido com fgets.
Será que fgets retorna alguma valor para indicar que foram digitados mais dados do que o necessário.
*Preciso dessa informação para poder gerar uma mensagem de erro, e fazer outro laço (um do while -- fazendo com que fgets fique rodando até que não seja digitado mais dados do que o definido) para que seja os dados sejam atribuídos para a variável**.*
desde já grato!!!
Aproveitando o gancho como tem fazer isto com inteiros também.
Carregando comentários...