用 C (mbed) 将字符写入文件?
Writing a character to a file in 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 上不起作用。它只接受一个字符,然后我就无法再输入了。我尝试了其他一些方法,但 none 我尝试的方法允许我写入文件。
我还想知道 getc()
在我使用 putc 后是否清空。它对我可以写的字符数有限制吗?
pc.printf(cha);
printf
需要 format
参数才能 null
终止 char *
。
但是你正在传递非 null
终止 char *
因此通过调用未定义的行为。
使用:
pc.printf("%c", *cha); //Or pc.printf("%c", c);
这是我的代码 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 上不起作用。它只接受一个字符,然后我就无法再输入了。我尝试了其他一些方法,但 none 我尝试的方法允许我写入文件。
我还想知道 getc()
在我使用 putc 后是否清空。它对我可以写的字符数有限制吗?
pc.printf(cha);
printf
需要 format
参数才能 null
终止 char *
。
但是你正在传递非 null
终止 char *
因此通过调用未定义的行为。
使用:
pc.printf("%c", *cha); //Or pc.printf("%c", c);