我有标签分隔的记录,像这样 sscanf的输入工作不
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()'返回成功读取的项数:测试这个数是判断sscanf()是否成功的一种方法。 – francis
''%d \ t%[^ \ t] \ t%s \ t%s \ t%ld \ n“'而不是%\ t%s \ t%s \ t% ld \ n“' – BLUEPIXY
@BLUEPIXY像魔术一样工作,顺便说一下[^ \ t]?为什么你用它来代替%s – CodeLearner