problem with binary translator

closed account (ypLhURfi)
hello. I have a problem.
I hope the translation makes sense.
as I can read spaces.
as I can make it closes the translator.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include<iostream>

using namespace std;
int main(){
char cadena;
int pasar_a_ascii;
int cociente;
int resto;
int repeticion; 
int bien_puesto[8];

cout<<"escribe la letra que quieras pasar a binario:";
for(;;){
cout<<" ";
cin>>cadena;
pasar_a_ascii=cadena;
if(pasar_a_ascii==46){
return 0;
}
for(int repeticion=1;repeticion<=8;repeticion++){
if(repeticion==1){
resto=pasar_a_ascii%2;
cociente=pasar_a_ascii/2;
}
else{
resto=cociente%2;
cociente=cociente/2;
}
bien_puesto[repeticion]=resto;
}
for(int repeticion=8;repeticion>=1;repeticion--){
cout<<bien_puesto[repeticion];
}
;
}
cout<<endl;
system ("pause");
return 0;   
}



Last edited on
closed account (ypLhURfi)
not how will the getline
I hope the translation makes sense
NO. it doesn't
closed account (ypLhURfi)
Forgiveness is not English speaking and google translator ...
to include spaces in the translator and finish with enter as could be done.
closed account (ypLhURfi)
Do you understand now?
I am not sure I understand. Do you want to be able to exit the translator if they enter a space?

No estoy seguro de entender. ¿Quieres ser capaz de salir del traductor si entran en un espacio?(google translate)



Una cosa aquí

The first index of an array is 0, not 1.
el primer índice de una matriz será 0, no 1 (google translate)

The last index will be the size less 1
El último índice será el tamaño menos 1 (google translate)

bien_puesto[8] is not a valid index
bien_puesto[8] no es un índice válido

1
2
for(int repeticion=1;repeticion<=8;repeticion++){
for(int repeticion=8;repeticion>=1;repeticion--){
Last edited on
closed account (ypLhURfi)
quiero que el programa lea los espacios en blanco y los pase también a binario y cuando se quede sin caracteres que pasar a binario finalice el programa.Creo que se puede hacer con getline pero no se como como hacerlo. Soy nuevo y se poco de programación y también poco de ingles.Siento las molestias.
google translate
I want the program to read the blanks and also pass binary and when you run out of characters to pass binary end the program. I think you can do with getline but not how how. I am new and some programming and also some English. Sorry for the inconvenience.
closed account (ypLhURfi)
yes
Maybe you want to read in multiple characters into a string instead of a single char? The example here uses getline to read in a name with a space between the first and last names. Is that what you mean?

Tal vez usted quiere leer en varios caracteres en una <string> de un solo char? El ejemplo aquí utiliza getline a leer en un nombre con un espacio entre los nombres y apellidos. ¿Es eso lo que quieres decir?

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>

int main ()
{
  std::string name;

  std::cout << "Por favor, introduzca su nombre completo: ";
  std::getline (std::cin,name);
  std::cout << "Hola, " << name << "!\n";

  return 0;
}


Por favor, introduzca su nombre completo: John Doe 
Hola, John Doe!
closed account (ypLhURfi)
si pero cuando he intentado eso me sale appcrash al intentar transformar el string a char.
You can access individual characters in a string through an index. Remember the index starts at 0, not 1.

Puede acceder a los caracteres individuales en una cadena a través de un índice. Recuerde que comience índice a 0, no 1.

1
2
3
4
5
6
  std::string name;
  std::cout << "Por favor, introduzca su nombre completo: ";
  std::getline (std::cin,name);
  std::cout << "Hola, " << name << "!\n";
  for (unsigned int i = 0; i < name.length(); i++)
    std::cout << name[i] << " "; 

Por favor, introduzca su nombre completo: John Doe 
Hola, John Doe! 
J o h n D o e 
closed account (ypLhURfi)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>

using namespace std;
int main(){
string cadena;
int pasar_a_ascii;
int cociente;
int resto;
int repeticion; 
int bien_puesto[8];
char caracter;
int n=0;
cout<<"escribe la letra que quieras pasar a binario:";
for(;;){
cout<<" ";
getline(cin,cadena);
caracter=cadena[n];
pasar_a_ascii=caracter;
if(pasar_a_ascii==46){
return 0;
}
for(int repeticion=1;repeticion<=8;repeticion++){
if(repeticion==1){
resto=pasar_a_ascii%2;
cociente=pasar_a_ascii/2;
}
else{
resto=cociente%2;
cociente=cociente/2;
}
bien_puesto[repeticion]=resto;
}
for(int repeticion=8;repeticion>=1;repeticion--){
cout<<bien_puesto[repeticion];
}
n++;
}
cout<<endl;
system ("pause");
return 0;   
}
Last edited on
n doesn't have a value when you try to use it here
n no tiene un valor cuando intenta utilizar aquí

1
2
3
4
5
6
int n;
cout<<"escribe la letra que quieras pasar a binario:";
for(;;){
cout<<" ";
getline(cin,cadena);
caracter=cadena[n];// <-- 
closed account (ypLhURfi)
ya lo corregí.
closed account (ypLhURfi)
sigue el appcrash pero me escribe la primera letra. Corregí lo de dar valor a n
n=0;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<iostream>
using namespace std;

int main()
{
    string cadena;
    int pasar_a_ascii;
    int cociente;
    int resto;
    int bien_puesto[8];
    char caracter;
    cout<<"escribe la letra que quieras pasar a binario:";
    getline(cin,cadena);
    for(unsigned int n = 0; n < cadena.length(); n++)
    {
        cout<<" ";
        caracter=cadena[n];
        pasar_a_ascii=caracter;
        if(pasar_a_ascii==46)
        {
            return 0;
        }
        for(int repeticion=0;repeticion<8;repeticion++)
        {
            if(repeticion==0)
            {
                resto=pasar_a_ascii%2;
                cociente=pasar_a_ascii/2;
            }
            else
            {
                resto=cociente%2;
                cociente=cociente/2;
            }
            bien_puesto[repeticion]=resto;
        }
        for(int repeticion=7;repeticion>=0;repeticion--)
        {
            cout<<bien_puesto[repeticion];
        }
    }
    cout<<endl;
    system ("pause");
    return 0;   
}


escribe la letra que quieras pasar a binario:hola 
01101000 01101111 01101100 01100001
closed account (ypLhURfi)
gracias wildblue ahora le estudio el nuevo código
Last edited on
De nada :)
Topic archived. No new replies allowed.