Error en la función get en c. tratando de devolver el valor de la cadena.

Estoy intentando usar la función getinput para devolver valores de cadena tal como los ingresó el usuario. pero he recibido errores de 1. tipos conflictivos para ‘getinput’ 2. La statement implícita anterior de ‘getinput’ estaba aquí. ¿Podría alguien explicarme cuáles son esos errores?

se supone que la función gets se lee en dos oraciones diferentes del usuario y la almacena en la variable userinput1 y userinput2.

#include  #include  char input1[1000] = {0}; char input2[1000] = {0}; int main(){ getinput(); char input[2000]; sprintf(input, "%s %s", input1, input2); printf("%s\n", input); return 0; } const char * getinput() { printf("please enter the something\n"); scanf("%999[^\n]%*c", input1); printf("please enter the next input\n"); scanf("%999[^\n]%*c", input2); return input1, input2; } 

Esta línea

 return input1, input2; 

Utiliza el operador de coma y devuelve input2 . Ya que ha declarado input1 y input2 como variables de scope de archivo, no es necesario devolverlos, están dentro del scope tanto en main() como en getinput() . Eliminar la línea de retorno y usar

 void getinput(void); int main (void) { ... } void getinput (void) { ... } 

También recomendaría un vistazo a

 scanf("%999[^\n]%*c", input2); 

Quizás quisiste decir solo

 scanf(" %999[^\n]", input2); 

Tenga en cuenta el espacio en blanco adicional que omite todos los espacios en blanco (por ejemplo, una nueva línea anterior).

Agregue la statement de función de getinput() en la parte superior de su código como

 #include  #include  const char * getinput(); ... 

Si el comstackdor no ha visto una statement de función, asume que devuelve int , pero su función realmente devuelve char * , por lo tanto, dicho error / advertencia.

Además, no puede devolver varios valores en C Teniendo en cuenta su código, no necesita devolver input1 y input2 ya que son variables globales.

En caso de que desee devolver varios valores, puede devolver una matriz (si son de un tipo similar) o devolverlos a través de una estructura.

 #include  #include  char input1[1000] = {0}; char input2[1000] = {0}; const char * getinput(); int main(){ getinput(); char input[2000]; sprintf(input, "%s %s", input1, input2); printf("%s\n", input); return 0; } const char * getinput() { printf("please enter the something\n"); scanf("%999[^\n]%*c", input1); printf("please enter the next input\n"); scanf("%999[^\n]%*c", input2); }