Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/10/2013, 06:37
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Usar una cadena char como parte del codigo

La idea es buena pero te falla el tipo de dato: las variables char soportan un caracter, pero puedes combinarlas en un array para que soporten una lista de caracteres

Código C:
Ver original
  1. char letra = 'a';
  2. char texto[] = "un texto";

Junto con esto ya que estas en c++ tienes el tipo string, que seria como un equivalente de array de caracteres

Código C++:
Ver original
  1. string texto = "otro texto";

Lo que te interesa es el array de caracteres o el string; cada tipo de dato tiene su comportamiento (p.ej. el array de caracteres puedes hacerlo dinamico o estatico pero una vez definido solo podrá albergar un numero de caracteres definido por su tamaño, en cambio en el string no tienes ese problema)

Si quieres hacerlo con array de chars primero declaras un array de chars y luego en cada caso copias los tabuladores que quieres:

Código C++:
Ver original
  1. char x[50];
  2. ...
  3. case 1:
  4. sprintf(x, "\t");
  5. ...
  6. case 2:
  7. sprintf(x, "\t\t");
  8. ...

Observa que el texto se indica con comillas dobles mientras que los caracteres aislados van con comillas simples. En este caso solo puedes guardar un maximo de 50 caracteres, si intentas poner mas se producirá una violacion de acceso (intentaras acceder a una memoria que no fue asignada a la aplicacion). Tambien ten en cuenta que debes incluir la cabecera stdio.h para usar sprintf.

Si quieres usar strings será parecido pero mas facil:

Código C++:
Ver original
  1. string x;
  2. ...
  3. case 1:
  4. x = "\t";
  5. ...
  6. case 2:
  7. x = "\t\t";
  8. ...

Observa otra vez como tambien indico caracter textual con las comillas dobles.

Y luego tienes aun la tercera forma que consiste en crear una funcion que se encargue de pintar tabuladores, de forma que tu te olvidas de strings y de todo:

Código C++:
Ver original
  1. void pinta_tabs(int n) {
  2.     for(int q = 0; q < n; q++) {
  3.         cout << '\t';
  4.     }
  5. }
  6.  
  7. int main() {
  8.     int i;
  9.    
  10.     for(i=1; i<=4; i++) {
  11.         cout << "cout<<\"Dentro del bloque " << i << "\";\n";
  12.         pinta_tabs(i);
  13.         cout << "}else{\n\t";
  14.     }
  15.  
  16.     return 0;
  17. }

Saludos
vosk