Hola, estoy empezando en C++ y mi duda es que no puedo declara bien una variable char
#include <iostream>
#include <string>
#include <windows.h>
#include <stdio.h>
using namespace std;
char Server;

void ping(){

cout << "Seleccione Server; \n";
cin >> Server;
if (Server == 'NA'){
cout << "AA";
}
}

int main(){

SetConsoleTitle("Ping");
ping();

return(0);
}

Creo que será porque la estás declarando fuera de la función, a lo mejor te falta alguna palabra delante, tipo "static" o "define" no se, yo no se casi nada tampoco de programación, tan sólo he dado una idea xD Corregirme si me equivoco :)
Pink escribió:Usa strcmp si vas a comparar cadenas y no caracteres.

saludos

Entonces Pink quedaria algo así ??
if (strcmp(Server) == 'Na'){
Pink escribió:Usa strcmp si vas a comparar cadenas y no caracteres.

saludos

segun yo quedaria así ,pero me manda error :

#include <iostream>
#include <string>
#include <windows.h>
#include <stdio.h>

using namespace std;
char N = "Na";
char cad;
int n;

void ping(){

cout << "Seleccione Server; \n";
cin >> cad;
n = strcmp( cad,N );
if (n == 0){
cout << "AA";
}
}

int main(){

SetConsoleTitle("Ping");
ping();

return(0);
}
Debería ser así:
#include <iostream>
#include <string.h>
using namespace std;

const char * sNA="NA";
char Server[3];

void ping(){
cout << Server<<endl;
cout << "Seleccione Server; \n";
cin >> Server;
if (!strcmp(Server,sNA)){
cout << "AA";
}
}

int main(){

//SetConsoleTitle("Ping");
ping();

return(0);
}

Saludos
Imagen
Pink escribió:Debería ser así:
#include <iostream>
#include <string.h>
using namespace std;

const char * sNA="NA";
char Server[3];

void ping(){
cout << Server<<endl;
cout << "Seleccione Server; \n";
cin >> Server;
if (!strcmp(Server,sNA)){
cout << "AA";
}
}

int main(){

//SetConsoleTitle("Ping");
ping();

return(0);
}

Saludos

Perfecto , gracias
Declarar variables globales es algo que debes evitar.

El tipo char, solo guarda un caracter, y en vez de declarar un puntero de char, puedes utilizar la clase string si estas utilizando C++.

Tu código quedaría de la siguiente manera utilizando strings.
#include <iostream>

using namespace std;

const string sNA = "NA";

void ping()
{
    string Server;

    cout << "Seleccione Server: ";
    cin >> Server;

    if (Server == sNA)
        cout << "AA";
}

int main()
{
    ping();

    return 0;
}
Saludos.
"Si buscas resultados diferentes, no hagas siempre lo mismo"
(Albert Einstein)
Pink escribió: ¿Porque?
[Enlace externo eliminado para invitados]
El uso de este tipo de variables suele considerarse como una mala práctica, por el riesgo que conlleva esa deslocalización: una variable global puede ser modificada en cualquier parte del programa (a menos que resida en una sección de memoria protegida) y cualquier parte del programa depende de ella. Es por ello que una variable global tiene un potencial ilimitado para crear dependencias, factor éste que aumenta la complejidad.
Viola la transparencia referencial y dificulta la legibilidad del código fuente.
El uso de variables globales dificulta la legibilidad del código fuente. Dado que en cualquier parte del programa y en todo momento se puede cambiar el valor de la variable, para entender el uso de la variable suele ser necesario tener que comprender el funcionamiento de una parte amplia del programa. También dificultan la separación del código en bibliotecas, ya que muchos sistemas (como por ejemplo DLL) no soportan la visualización directa de variables globales en otros módulos. La denominación de las variables también puede desembocar en problemas con la denominación ya que una variable global corre el riesgo de ser usada, por ejemplo, en lugar de una variable local.
etc...
Saludos
"Si buscas resultados diferentes, no hagas siempre lo mismo"
(Albert Einstein)
Responder

Volver a “C/C++”