对于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导致第二个变量是一个长数,对于每个条目是相同的,我假定变量的存储地址。 我应该使用什么代码?
答案 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);
}