Estou tentando passar algumas cordas através do espeak e as lê [closed]

1

Este é o meu código. Eu quero pegar 5 strings do usuário e o ecler lê cada uma delas quando o usuário a enterrou. Mas recebo segmentation fault(core dumped) message.

#include <string.h>
#include <malloc.h>
#include <espeak/speak_lib.h>

int test()
{

espeak_POSITION_TYPE position_type;
espeak_AUDIO_OUTPUT output;
char *path=NULL;
int Buflength = 500, Options=0;
void* user_data;
t_espeak_callback *SynthCallback;
espeak_PARAMETER Parm;



char Voice[] = {"English"};

int i=0;
char text[1000];
unsigned int Size,position=0, end_position=0, flags=espeakCHARS_AUTO, *unique_identifier;


    output = AUDIO_OUTPUT_PLAYBACK;

    espeak_Initialize(output, Buflength, path, Options ); 
    espeak_SetVoiceByName(Voice);
    const char *langNativeString = "en_US";
    espeak_VOICE voice={0};

        voice.languages = langNativeString;
        voice.name = "US";
        voice.variant = 2;
        voice.gender = 1;
       Size = strlen(text)+1;    


for (i=0; i<5; i++)
{

scanf("%s ", &text);

printf("%s", text);

    espeak_Synth( text, Size, position, position_type, end_position, flags,
    unique_identifier, user_data );
    espeak_Synchronize( );
fflush(stdout);

}

return 0;
}






int main(int argc, char* argv[] ) 
{
    test();

    return 0;
}

Eu tentei algumas modificações, mas nenhuma delas funcionou. Eu quero que o programa funcione assim:

User input: hi

espeak says: hi

user input: one

espeak says: one

(for 5 inputs)

Mas quando eu tento interring mais de 4 caracteres como entrada, dá segmentation fault erro!

    
por user8663682 12.12.2017 / 17:47

0 respostas