How can I remove the last comma from a loop in C++ in a simple way?

11,630

Solution 1

Don't remove the last comma. Instead insert commas before each entry except the first.

Solution 2

Just decide from a pre condition:

bool first = true;
for(j=2;j<=N;j++){
   // ...
   if(k==N) {
   if(!first) {
       cout << ',';
   }
   else {
       first = false;
   }
   cout<<j;
}
Share:
11,630
Talha Gillani
Author by

Talha Gillani

Updated on June 13, 2022

Comments

  • Talha Gillani
    Talha Gillani almost 2 years

    This program is for printing prime numbers till the input given and separating every prime number with a comma.

    void main(){
    
        int N, counter=0, isPrime;
    
        int k, j;
    
        cout << "Enter maximum range: ";
    
        cin >> N;
    
        for (j=2; j<=N; j++){
    
            isPrime = 0;
            k = 2;
    
            while (k<j){
    
                if (j%k==0){
    
                    isPrime++;
                }
                k++;
            }
            if (isPrime==0){
    
                if (k==N){
                    cout << j;
                }
                else{
                    cout << j << ",";
                }
                counter++;
            }
        }
        cout << endl;
        system("pause");
    }
    

    It is only removing the last comma for prime number inputs, not for any other input. How can I fix this?

    Input: 23
    Output: 2,3,5,7,11,13,17,19,23
    Input: 8
    Output: 2,3,5,7,
    Input: 9
    Output: 2,3,5,7,