954,228 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Rightly configuring my terminal (Konsole, xfce4-termial)

Hi,

I am writing a C++ code that draws a sine curve. The code is fine, but when I run it (the compiled output) I get strange characters for both x- and y- axis. They look like a small oval with a question mark in it. I tried to run in it in a xfce4-terminal and this time, I could not see any of the axis, so I figured it has to do with playing with configuration of either console of Terminal (or gnome-terminal). Here is the code for testing:

/* ----------------------------------------------------- 
 *   sinCurve.cpp
 *   Outputs a sine curve
 * ----------------------------------------------------- 
*/

#include <iostream>
#include <cmath>                         // Prototypes of sin()
using namespace std;

#define CLS         (cout << "\033[2J") 
#define LOCATE(z,s) (cout <<"\033["<<(z)<<';'<<(s)<<'H')

#define PI        3.1415926536
#define START     0.0                    // Lower limit
#define END     (2.0 * PI)               // Upper limit

#define PNT       64                     // Number of points on the curve
#define STEP  ((END-START)/PNT)
#define xA        14                     // Row  of x-axis
#define yA        10                     // Column of y-axis


int main()
{
  int  row, column;

  CLS;
  LOCATE(2,25);
  cout << "-------  The Sine Function  -------";


  //    ---  Draws the coordinate system: ---  

  LOCATE(xA,1);                               // x-axis
  for( column = 1 ; column < 78  ; ++column)
    {
      cout << ((column - yA) % 8  ?  '\304' : '\305');
    }

  cout << '\020';                             // top
  LOCATE(xA-1, yA+64);  cout << "2PI  x";

  for( row = 5 ; row < 24 ; ++row)            // y-axis
    {
      LOCATE(row, yA);  cout << '\305';
    }

  LOCATE( 4, yA);  cout << "\036 sin(x)";     // top
  LOCATE( xA-8, yA+1);  cout << " 1";
  LOCATE( xA+8, yA+1);  cout << " -1";

  //     ---  Displays the sine function:  --- 

  int begpt = yA,
    endpt = begpt + PNT;

  for( column = begpt ;  column <= endpt  ;  ++column)
    {
      double x = (column-yA) * STEP;
      row = xA - 8 * sin(x) + 0.5;
      LOCATE( row, column);  cout << '.';
    }

  LOCATE(25,1);                 // Cursor to the last row 

  return 0;
}


Any clue?

I am using an Ubuntu 11.10 box updated to the latests of packages.

~faizlo

faizlo
Newbie Poster
3 posts since Oct 2008
Reputation Points: 10
Solved Threads: 0
 

I don't know if this will help, try running it in netbeans.

ovidiu_b13
Light Poster
27 posts since Sep 2010
Reputation Points: 13
Solved Threads: 1
 

Sorry, same result in Netbeans:

 sin(x)
         
          1          .......
                  ...       ...
                ..             ..
               .                 .
             ..                   ..
            .                       .
          ..                         ..
         .                             .                                2PI  x
...
                                         .                             .
                                          ..                         ..
                                            .                       .
                                             ..                   ..
                                               .                 .
                                                ..             ..
                                                  ...       ...
          -1                                         .......
         


RUN SUCCESSFUL (total time: 195ms)
ovidiu_b13
Light Poster
27 posts since Sep 2010
Reputation Points: 13
Solved Threads: 1
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: