gpt4 book ai didi

c++ - 流缓冲区(cin、getline 等)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:52:01 28 4
gpt4 key购买 nike

有没有办法让用户输入一行字符到流缓冲区,然后将它们存储在不同的变量(不同类型)中?

例如,用户写下这个分数和:

1/5 + 2/7

我有 5 个变量:

int numerator1, denominator1, numerator2, denominator2; char operat;

在做了一段我不知道的花哨代码之后,最后,变量将存储以下内容

numerator1 = 1
denominator1 = 5
operat = +
numerator2 = 2
denominator2 = 7

有什么建议吗?

最佳答案

您绝对应该使用 AST,因为它们可以帮助您解析错误。但如果您正在寻找一种简单的解析功能,您可以考虑使用 sscanf。 PS:由于声誉问题,将其发布为答案。

#include<cstring>                                                                       
#include<cstdio>
#include<iostream>
using namespace std;

int main()
{
char s[1024];
scanf("%s", s);

int n1, n2, dn1, dn2;
char op1, op2, op3;
sscanf(s, "%d%c%d%c%d%c%d", &n1, &op1, &dn1, &op2, &n2, &op3, &dn2);

cout<<"\n"<<n1<<" "<<op1<<" "<<dn1<<" "<<op2<<" "<<n2<<" "<<op3<<" "<<dn2<<endl;
}

关于c++ - 流缓冲区(cin、getline 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26793640/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com