解析并将字符串输入转换为int c ++

时间:2014-04-06 05:05:30

标签: c++ string parsing

INPUT :(某个号码,某个号码) 示例:(12,2345235) 我如何解析这个输入,存储为字符串,并将其转换为整数?

是否可以从'('到','

创建一个字符串

然后另一个数字将从','和结束')'

开始

这种方式无论输入多大,都会被存储。

此外,如果输入是:badcharacters(12,324)badcharacters 你是否仍然能够检索12和324并将它们存储为整数,只要正确的输入在字符串内的某处?

2 个答案:

答案 0 :(得分:1)

如果字符串来自file:

,您可以尝试使用scanf系列,例如这样

的main.cpp

#include <fstream>
#include <iostream>

using namespace std;

int main()
{
    ifstream ifs ("test.txt", ifstream::in);
    char buf[256];
    int i1, i2;
    while (ifs.getline(buf, 256)) {
        sscanf(buf, "(%i,%i)", &i1, &i2);
        cout << i1 << " " << i2 << endl;
    }

    ifs.close();

    return 0;
}

输出

12 2345235

答案 1 :(得分:1)

const int SIZE=100;
char input[SIZE]

// Read the input into the string.
fgets(input, SIZE-1, stdin);

// Extract the integers out of it.
int n1;
int n2;
sscanf(input, "(%d,%d)", &n1, &n2);