c++ - 使用 fscanf 时将宽度作为变量

标签 c++ c width scanf

我正在尝试读取文件的某个部分,每行的数据量不同,但我知道我想要多少字节的信息。像这样:

5bytes.byte1byte2byte3byte4byte5CKSum //where # of bytes varies for each line (and there is no period only there for readability)  

实际数据:

05AABBCCDDEE11
03AABBCC22
04AABBCCDD33

所以我想让我的宽度是这样的变量:

fscanf_s(in_file,"%variableX", &iData);  

这可能吗,因为现在我想我必须创建一个案例陈述?

最佳答案

不幸的是,不,没有像'*'这样的修饰符用于 printf 导致 scanf 从变量中获取其字段宽度或精度。最接近的方法是动态创建格式字符串:

char format[8];
sprintf(format, "%%%dX", width);
fscanf(in_file, format, &iData);

关于c++ - 使用 fscanf 时将宽度作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3313299/

相关文章:

c++ - QPrintDialog 在窗口中显示两次

c - 如何将 memcpy() 函数与动态分配结构一起使用

c - 如何返回一个指针数组?

css - 如何为 <td> 设置固定宽度?

jquery-mobile - jquery 移动字段集宽度

c++ - 使用 C++ 解析/proc/stat

c++ - 使用 C++ 创建 MAPI 配置文件

C++ ostream 和 ofstream 转换

c++ - GCC 不会删除未使用的函数

css - 对 img 元素的宽度、高度属性使用百分比会产生什么后果?