我无法找到合适的样式来编写多个“%....”来工作。我正在读取格式为以逗号,
分隔的数字块的文件,如:
913,91,011,3
391,391
04,111
940,1,999
它可以是1到3位数,逗号只是在同一行上的中间数字...它也可能是空的。我试着像这样阅读每一行:
res=fscanf(users,"%[^,\n]c%c",lockid,&temp2);
哪个应该带给我
lockid=913 (its char*)
temp2=',' or '\n' (its char)
and res=2 (int)
但我得到了lockid=913
而temp2
根本没有变化(仍然未知)和res = 1
。
如果我把它分开:
res1=fscanf(users,"%[^,\n]3s",lockid);
res2=fscanf(users,"%c",temp1);
我得到了我想要的东西,但它花了我2行...为什么它不起作用?
它发生在我的所有fscanf
中。你能告诉我写什么是正确的方法吗?我的老师说每个%
之间应该没有任何内容
我在互联网上看到人们之间使用空间,所以我也尝试过,但仍然没有。
我也尝试fscanf(fp,"%d""%d",num1,num2)
,但同样的错误:num2
没有收集第二个%d
...
这可能是它编译的方式还是什么? 我正在使用Visual Studio最新版本和C语言编写。
提前致谢!
答案 0 :(得分:0)
我试过
int num;
char separaotor;
fscanf(fp, "%d%c", &num, &separator);
我得到了
num = 913
separator =,
这是你想要做的吗?