delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/03/06/19:25:39

From: Victor Senderov <victor DOT bg AT usa DOT net>
Newsgroups: comp.os.msdos.djgpp
Subject: division after for loop
Date: Sat, 06 Mar 1999 17:58:14 -0500
Organization: Posted via RemarQ, http://www.remarQ.com - Discussions start here!
Lines: 40
Message-ID: <36E1B306.176F24E4@usa.net>
NNTP-Posting-Host: 209.141.72.93
Mime-Version: 1.0
X-Trace: 920761106 FQHDYQB2I485DD18DC usenet55.supernews.com
X-Complaints-To: newsabuse AT remarQ DOT com
X-Mailer: Mozilla 4.05 [en] (Win95; I)
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

The following is a part of a program I was trying to write. The problem
is that
if the for loop is used flPart will be incorect. If it is cut everything
works just
fine.

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
double atod_new(char* stg);
int main()
{
atod_new("453,43.5435");
return 0;
}

double atod_new(char* stg)
{
    char* stgClean = "\0";
    int j = 0;
// THIS LOOP CAUSES
    for (int i = 0; stg[i] != '\0'; i++)
   {
     if (stg[i] >= '0' && stg[i] <= '9' || stg[i] == '.') stgClean[j] =
stg[i];
      else j--;
       j++;
  }
    stgClean[j] = '\0';
    long intPart = atol(stgClean);
    char* point2Fl = strchr(stgClean, '.');
    point2Fl++;
    double flPart = 653.;
    cout << endl;
    cout << flPart << endl;
    flPart= flPart/10;
    cout << flPart; // THIS TO OUTPUT NONSENSE
    return flPart;
}

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019