簡體   English   中英

C ++忽略cin時的特定字符

[英]C++ ignore specific character while cin

我的輸入如下:

4 5i 6 7i

而不是查找並替換為字符串,

我想將這些單個值存儲為雙精度

但是偷看而忽略了“ i”

所以

雙a = 4,b = 5,c = 6,d = 7

我正在遵循丑陋的代碼

我迷路了,將不勝感激

謝謝!

    char c, real[1024], img[1024];
    int i = 0;
    bool flag = false,
    flag2 = false;

    while( c = input.get() )
    {
        if( input.peek() == ' '){

            i = 0;
            flag2 = true;

        }

        if( !flag2 ){

            real[ i++ ] = c;

        }else{

            img[ i++ ] = c;

        }


        if( flag )
        {
            break;
        }

        while( input.peek() == 'i' )
        {
            if( input.peek() == 'i' )
            {
                flag = true;
                i = 0;
                flag2 = true;

            }if( input.peek() == ' ' )
            {
                i = 0;
                flag2 = true;

            }

            input.ignore(1, 'i');

        }



    }

    if( flag ){

        obj.doubleValueA = 0.0  ;
        obj.doubleValueB = atof( real );

        return input;

    }else{

        obj.doubleValueA = atof( real );
        obj.doubleValueB = atof( img );
    }

    return input; // enables  cin >> a >> b >> c
#include<iostream>
#include<vector>
#include<sstream>
#include<ctype>
#include<string>

using namespace std;

int parseNumber( string number )
{
    unsigned i = 0;

    // Find the position where the character starts
    while ( i < number.size() && isdigit( number[i] )
    {
        i++;
    }

    number = number.substr( 0, i );

    // Retrieve the number from the string using stringstream
    stringstream ss( number );
    int result;
    ss >> result;

    // Return the result
    return result;
}

int main()
{
    string input;
    getline( cin, input );

    stringstream ss( input );
    string number;
    vector<int> complexNumbers;

    while ( ss >> number )
    {
        complexNumbers.push_back( parseNumber( number ) );
    }

    for ( unsigned i = 0; i < complexNumbers.size(); i++ )
    {
        cout << complexNumbers[i] << " ";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM