gpt4 book ai didi

c++ - sscanf 输入不工作

转载 作者:行者123 更新时间:2023-11-30 02:39:33 25 4
gpt4 key购买 nike

我有这样的制表符分隔记录

1000    Muhammad Aashir 0213-4211685    123456  0

首先我使用 fgets 读取了该行,现在我尝试使用 sscanf 提取内容,但是出现了一个意想不到的问题...请帮助我是初学者

这是代码

char buffer[SIZE];
Account req;
while(fgets(buffer,SIZE,fptr))
{
cout<<endl<<buffer<<endl;
sscanf(buffer,"%d\t%s\t%s\t%s\t%ld\n",&req.acc_num,req.name,req.mobileno,req.pass,&req.acc_bal);
cout<<endl<<req.pass;
}

BUFFER的输出与记录行相同

但是在提取值之后,当我显示“req.pass”时,该值不正确

req.pass 正在显示 '0213-4211685' 但它必须显示 '123456'

最佳答案

sscanf 将捕获直到到达任何类型的空白。在您的情况下,req.name 仅包含 Muhammad。这将导致您的其余变量包含错误信息。

如果您需要使用 sscanf(),您必须将名称中的“”实例替换为转义字符,例如“_”。

关于c++ - sscanf 输入不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29731263/

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