2017-04-12 65 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