Função não está funcionando devidamente...
27/11/2019
0
Então, estava escrevendo um RPG em Linguagem C, e criei uma função que imprimiria as falas de modo lento, como se estivesse digitando.
Esse seria meu código:
#include < stdio.h>
#include < stdlib.h>
#include < string.h>
#include < unistd.h>
void tempo(float n){
fflush(stdout);
usleep(n*1000000);
}
char str[255];
void fala(char str[255]){
for (int i; i<strlen(str); i++){
printf("%c", str[i]);
tempo(0.1);
}
}
int main(void) {
fala("Hello World Hello World Hello World Hello World\n\n");
fala(strcpy(str, "OI\n"));
return 0;
}
A princípio tudo funciona certinho... Mas a partir do momento em que eu uso a função várias vezes, ela começa a cortar pedaços da minha string.
Alguém sabe o que estou fazendo de errado ou uma alternativa?
Esse seria meu código:
#include < stdio.h>
#include < stdlib.h>
#include < string.h>
#include < unistd.h>
void tempo(float n){
fflush(stdout);
usleep(n*1000000);
}
char str[255];
void fala(char str[255]){
for (int i; i<strlen(str); i++){
printf("%c", str[i]);
tempo(0.1);
}
}
int main(void) {
fala("Hello World Hello World Hello World Hello World\n\n");
fala(strcpy(str, "OI\n"));
return 0;
}
A princípio tudo funciona certinho... Mas a partir do momento em que eu uso a função várias vezes, ela começa a cortar pedaços da minha string.
Alguém sabe o que estou fazendo de errado ou uma alternativa?
Gabriela
Curtir tópico
+ 0
Responder
Posts
03/12/2019
Bruno Pardim
Seu código funciona certinho, só ajustei o tempo:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> void tempo(float n){ fflush(stdout); usleep(n*5000); //Exemplo 1 segundo é igual a usleep(1000000) } char str[255]; void fala(char str[255]){ for (int i; i<strlen(str); i++){ printf("%c", str[i]); tempo(5); } } int main(void) { fala("Hello World Hello World Hello World Hello World\\n\\n"); fala(strcpy(str, "OI\\n")); return 0; }
Responder
10/12/2019
Gabriela
Na verdade, o problema original ainda persiste... Pois em alguns momentos a string é "cortada".
Por exemplo, se eu coloco a palavra "golfinho", às vezes imprime certo, às vezes só imprime o "inho", e às vezes nem imprime nada.
Por exemplo, se eu coloco a palavra "golfinho", às vezes imprime certo, às vezes só imprime o "inho", e às vezes nem imprime nada.
Responder
Clique aqui para fazer login e interagir na Comunidade :)