es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué “ios::sync_with_studio(0) y cin.tie(0);” no funciona con strings en C++?

Estaba resolviendo un problema utilizando C++ donde debía tomar una cadena como entrada. En lugar de utilizar el método estándar de entrada/salida, intenté utilizar el método de entrada/salida rápida.

#include <bits stdc++.h="">

using namespace std;
typedef long long ll;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    string str;
    cin >> str;
    cout << str;
    return 0;
}

Muestra un error:-
error: ‘sync_with_studio’ no es un miembro de ‘std::ios {también conocido como std::basic_ios}’
ios::sync_with_studio(0);
^~~
pero si uso

ios_base::sync_with_stdio(false);
cin.tie(NULL);

funciona.
¿Alguien puede decir por qué el código anterior no funciona y por qué esto funciona?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El código anterior no funciona debido a un error tipográfico en ios::sync_with_studio(0);. La llamada correcta a la función debería ser ios::sync_with_stdio(0);.

    Por otro lado, ios_base::sync_with_stdio(false); funciona porque desactiva la sincronización de los flujos de C++ con los flujos de entrada/salida estándar de C, lo que conduce a un procesamiento más rápido de la E/S. La instrucción cin.tie(NULL); se utiliza para desvincular cin de cout, mejorando aún más la velocidad de procesamiento de E/S.

    Por lo tanto, se recomienda utilizar ios_base::sync_with_studio(false); y cin.tie(NULL); al manejar la E/S en C++.

Comments are closed.