真的,說實話,我寧願更多的信息。但這並不重要。它隻影響輸出的方法。如果你在一個Arduino運行此,比如,你可以輸出到串行端口一樣容易:
Serial.begin(9600);
Serial.write('a');
等,等
正如其他人所提到的,在有些情況下,你會使用以null結尾的字符串更好。但是,如果你有特別的理由這樣做,那麼我想你可能;
#include <stdio.h>
typedef struct memoryTag1_t
{
char a[9]; // setpoint temperature value
char b[9];
char c[7];
} *pMemoryTag1_t;
typedef struct memoryTag2_t
{
char a[10]; // setpoint temperature value
char b[10];
char c[8];
} *pMemoryTag2_t;
void displayField1(char *field, int len)
{
for (int i=0; i<len; i++)
{
if (i!=0) printf(",");
printf("%c", field[i]);
}printf("\n");
}
void displayField2(char *field)
{
bool firstDone = false;
while (*field)
{
if (firstDone)
printf(",");
else
firstDone = true;
printf("%c", *field++);
}
printf("\n");
}
int main()
{
memoryTag1_t myMem1 =
{
{'+','0','2','6','.','5','E','A','\r'},
{'-','0','2','4','.','5','E','B','\r'},
{'+','0','2','0','E','C','\r'}
};
memoryTag2_t myMem2 =
{
"+026.5EA\r",
"-024.5EB\r",
"+020EC\r"
};
displayField1(myMem1.a, sizeof(myMem1.a));
displayField1(myMem1.b, sizeof(myMem1.b));
displayField1(myMem1.c, sizeof(myMem1.c));
displayField2(myMem2.a);
displayField2(myMem2.b);
displayField2(myMem2.c);
}
輸出: (別忘了還有在每行的最後一個逗號 '後' 印刷\ r)的
+,0,2,6,.,5,E,A,
-,0,2,4,.,5,E,B,
+,0,2,0,E,C,
+,0,2,6,.,5,E,A,
-,0,2,4,.,5,E,B,
+,0,2,0,E,C,
@PaulR謝謝。固定 – MOHAMED
您還需要修復'EA','EB','EC'字符並增加陣列大小。 –
我沒有這樣評論。他應該將這些字符分隔成不同的字符 – MOHAMED