在C(mbed)文件中写入字符?

时间:2019-01-28 11:40:51

标签: c++ c mbed

这是我的代码C / C ++代码,用于将字符写入文件。

#include "mbed.h"

Serial pc(USBTX, USBRX);
char c;
char *cha = &c;

int main() {
     FILE* WriteTo = fopen("/local/yourtext.txt", "w");

     pc.printf("Write something and then press enter when finished...\n\r");

     while (c != '\n') {
        c = pc.getc();
        pc.printf(cha);
        fputc(c, WriteTo);
     }

     fclose(WriteTo);   

     pc.printf("File write successfull.\n\r");
}

问题是它不适用于我的LPC1768。它只需要输入一个字符,然后便无法输入了。我尝试了其他方法,但是尝试的任何方法都不允许我写入文件。

我还想知道在使用putc之后getc()是否清空。我可以写的字符数有限制吗?

1 个答案:

答案 0 :(得分:3)

pc.printf(cha);

printf需要format参数是 null 终止的char *。 但是您通过调用未定义的行为来传递非 null 终止的char *

使用:

pc.printf("%c", *cha); //Or pc.printf("%c", c);