C ++使用serial.printf从.txt文件中检索变量

时间:2017-04-12 11:37:27

标签: c++ printf

对于MBED项目,我一直在使用以下格式将变量写入.txt文件: AAA,1 BBB,2 CCC,3 DDD,4 等等 我想使用serial.printf将三个字母检索为字符串,将数字检索为整数。

while (fscanf(fp, "%3s",str) != EOF) {

给出

的结果
Entry 1: AAA
Entry 2: ,1
Entry 3: BBB
Entry 4: ,2

等,而

while (fscanf(fp, "%3s,",str) != EOF) {

给出

的结果
Entry 1: AAA
Entry 2: 1
Entry 3: BBB
Entry 4: 2

等,但随后

while (fscanf(fp, "%3s,%1s",str1,str2) != EOF) {

结果

Entry 1: str1: 1, str2: 1
Entry 2: str1: 2, str2: 2

等,并用一个整数(正确初始化)替换str2导致第二个变量是一个长数,对于每个条目是相同的,我假定变量的存储地址。 我应该使用什么代码?

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题

和, 如果数据表示如下

AAA,1 BBB,2 CCC,3 DDD,4 

以下代码就足够了

FILE* _in_file_ = fopen("test2.txt","r");

if (!_in_file_)
{
    printf("ERROR::File not found [%s]\n", "test2.txt");
    return 1;
}

char buf[4];
buf[3] = '\0';

long value = 0;
while (fscanf(_in_file_,"%3s,%ld ",buf,&value) != EOF)
{
    printf("%s|%ld\n",buf,value);
}