2017-04-12 143 views
-1

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

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,我相信的存储地址变量。 我应该使用哪些代码?

回答

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); 
} 
+0

那伟大工程,tyvm ! – Podhakkin