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 - C 中 void * 转为 char 或 int

html - 使表格单元格保持相同的宽度

css - Div 宽度为 100%,但希望内部的 anchor 宽度仅为 85 像素?

c++ - 使用 strstr() 函数正在破坏

c++ - 如何在 Xcode 中使用 object-Cpp

c++ - 我的 C++ 函数给出了关于声明的异常错误

android - xml获取宽度并设置为android :height

Objective-C 中的 C++ 管道

java - 如何通过位操作转换大小写?

打开并检查仅更改一次的运行时标志的正确方法