0

我想不出正确的风格来写多个“%....”来工作。我正在读取格式为用逗号分隔的数字块的文件,,例如:

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 行......为什么它不起作用?它发生在我所有的fscanfs上。你能告诉我什么是正确的写法吗?我的老师说% 我在互联网上看到的每个人都使用中间空间,所以我也尝试过,但仍然没有。我也尝试过,fscanf(fp,"%d""%d",num1,num2)但同样的错误:num2不收集第二个%d......

可能是它编译的方式还是什么?我正在使用 Visual Studio 最新版本和用 C 编写的版本。

提前致谢!

4

1 回答 1

0

我试过了

int num;
char separaotor;
fscanf(fp, "%d%c", &num, &separator);

我得到了

num = 913
分隔符 = ,

这是你想要做的吗?

于 2013-09-30T17:15:11.417 回答