相关疑难解决方法(0)

Stringstream to vector <int>

我想知道什么是最好的方法,从一个写std::stringstreamvector<int>.

以下是以下内容的示例stringstream: "31 #00 532 53 803 33 534 23 37"

这是我得到的:

int buffer = 0;
vector<int> analogueReadings;
stringstream output;

 while(output >> buffer)
     analogueReadings.push_back(buffer);
Run Code Online (Sandbox Code Playgroud)

然而,似乎发生了什么,它首先读取,然后它到达#00并返回,0因为它不是一个数字.

理想情况下,我想要的是,它到达a #然后只是跳过所有字符直到下一个空格.这可能是旗帜或其他什么?

谢谢.

c++ stringstream visual-studio-2010 lexical-cast

4
推荐指数
1
解决办法
7926
查看次数

_wtoi 返回零:输入零还是输入非数字?

_wtoi当无法转换输入,因此输入不是整数时,返回零。但同时输入可以为零。这是确定输入是否错误或为零的方法吗?

c++ visual-c++

4
推荐指数
1
解决办法
3046
查看次数

C ++字符串转换为int而不使用atoi()或stoi()

嗨,我是C ++的新手,正在尝试做一个作业,我们从txt文件中读取许多数据,格式为

 surname,initial,number1,number2
Run Code Online (Sandbox Code Playgroud)

在有人建议将2个值读取为字符串然后使用stoi()或atoi()转换为int之前,我曾寻求帮助。这很好用,除非我需要使用此参数“ -std = c ++ 11”进行编译,否则它将返回错误。在我自己的计算机上这不是问题,它将处理“ -std = c ++ 11”,但是对我来说不幸的是,我必须在其上显示程序的计算机没有此选项。

如果还有另一种方法可以将字符串转换为不使用stoi或atoi的int?

到目前为止,这是我的代码。

while (getline(inputFile, line))
{
    stringstream linestream(line);

    getline(linestream, Surname, ',');
    getline(linestream, Initial, ',');
    getline(linestream, strnum1, ',');
    getline(linestream, strnum2, ',');
    number1 = stoi(strnum1);
    number2 = stoi(strnum2);

    dosomethingwith(Surname, Initial, number1, number2);
}
Run Code Online (Sandbox Code Playgroud)

c++ string int type-conversion atoi

4
推荐指数
1
解决办法
2万
查看次数

C++ - Integer.parseInt()和String.valueOf()的替代方案

在C++中.C++中Java的Integer.parseInt()String.valueOf()有哪些替代方法.

c++ java

3
推荐指数
1
解决办法
1万
查看次数

如何在c ++中将字符串值转换为双精度格式

如何在C++中将字符串值转换为双精度格式?

c++

2
推荐指数
1
解决办法
276
查看次数

如何尝试读取为int,然后如果它失败读取为字符串?

我试图重复读取整数,以及非整数的标记,以读取和处理它们作为字符串.我认为以下内容可行:

string s;
int x;

while(1) {
    if (cin >> x)                                     // try reading as int
        cout << "read int: " << x << endl;
    else {                                            // try reading as string
        cin.clear();

        if (cin >> s) 
            cout << "read string: " << s << endl;
        else
            break;                                    // eof
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,对于输入(在换行时使用换行符)

1 2 a
Run Code Online (Sandbox Code Playgroud)

它给出了输出

read int: 1
read int: 2
Run Code Online (Sandbox Code Playgroud)

似乎清除流的状态与之前不完全相同,实际上cin >> s失败了.为什么会这样,我怎样才能实现我想要的行为?

为了澄清,我无法将字符串解析为int,因为我尚未"学习"它.

c++ cin

2
推荐指数
1
解决办法
190
查看次数

如何解析c_str

我有一个包含的c_str [51,53].我想将这些对分成两个整数.它们位于c_str中,因为我从输入文件中读取它们.

必须有一种简单的方法来解析它们.我在考虑使用这个.at功能:但我相信我已经成功了.此外,它不起作用,因为它输出:

pair: 0x7ffffcfc2998
pair: 0x7ffffcfc2998 
etc
Run Code Online (Sandbox Code Playgroud)
string pairstring = buffertm.c_str();
stringstream pair1, pair2;
int pairint1, pairint2;
pair1 << pairstring.at(1) << pairstring.at(2);
cout << "pair: " << pair1;
pair1 >> pairint1;
pair2 << pairstring.at(4) << pairstring.at(5);
//cout << "pair: " << pair2;
pair2 >> pairint2;
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

c++ string parsing casting

2
推荐指数
1
解决办法
310
查看次数

从一个Chars数组中检索整数

我正在工作的程序传递了3个命令行参数,所有这些参数都应该是整数.提供的骨架程序有:

int main(char *argv[]){
...
}
Run Code Online (Sandbox Code Playgroud)

我所提供的只是尝试在数组的每个位置(0,1和2)中为项设置一个整数,但它不会编译,因为它试图将char转换为整数.我确信有一个简单的解决办法,但我似乎无法弄明白.

c++

1
推荐指数
1
解决办法
64
查看次数

c ++当我将一个字符串转换为int时,int只是一个随机数?

所以我有一个编辑值的函数,但我在main中查看值,看它输出1309668848并在每次运行程序时更改.(这在预处理器中没有发生).我一直在努力解决这个问题,并决定来这里寻求建议.

这是功能.

void GetDahInt() {
    std::string NewValueS;
    getline(std::cin, NewValueS);
    NewValue = (int)NewValueS.c_str();
}
Run Code Online (Sandbox Code Playgroud)

c++ string int

1
推荐指数
1
解决办法
159
查看次数

如何在C++中对字符串应用算术运算?

我想创建一个程序,读取包含两个数字和一个运算符的字符串,并打印出结果.它不断显示算术运算符的错误.例如,我如何将两个字符串一起添加?

int main()
{
    string number1;
    string number2;
    string operation;
    string answer;

    cout << "Enter numbers with respective operations";
    cout << "number 1";
    cin >> number1; 
    cout << "number2";
    cin >> number2;
    cout << "operation";
    cin >> operation;
    if (operation == "+")
    {
        answer = number1 + number2;
        cout << "the sum is   " << answer << endl;
    }
    else if (operation == "-")
    {
        answer = number1 - number2;
        cout << "the difference is   " << answer << endl; …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
277
查看次数