【发布时间】:2015-05-01 22:32:33
【问题描述】:
我正在创建一个带有以下格式标题的文件
file = fopen(fname, "wb");
size_t ground_cnt, obj_cnt;
(...)
fprintf(file, "ground %Iu object %Iu %Iu\n", ground_cnt, obj_cnt, sizeof(size_t);
但是,当我尝试将其解析回来时,以下格式只会返回第一个值
char aux_line[4096];
size_t ground_cnt, obj_cnt, size;
file = fopen(fname, "rb");
fgets(aux_line, 4096, file);
sscanf(aux_line, "ground %Iu object %Iu %Iu\n", &ground_cnt, &obj_cnt, &size);
可能出了什么问题?
注意我使用的是 MSVC (Visual Studio 2013),因此我必须使用 %Iu 格式说明符,因为不支持 %zu。
【问题讨论】:
-
@AlterMann 不起作用
-
文件的内容是什么? aux_line 的内容是什么?
-
@DavidRoundy aux_line 字符串是正确的(“ground 8000 object 1000 8\n”
-
@manatttta 那是给
printf()的。 Thescanf()specifications are different.