当我运行这个程序时,它会编译,但第二个 scanf 语句只是打印并且实际上并没有得到任何变量。但是,如果我删除第一次扫描,程序就可以工作。
#include <stdio.h>
struct file_struct
{
FILE *fp;
};
int main(int argc, char** argv)
{
char open_type;
printf("Open type [w/a]: ");
scanf("%c", &open_type);
struct file_struct new_file;
new_file.fp = fopen(argv[1], &open_type);
char text_buffer[128];
printf("Enter text to add to file:\n\n");
scanf("%[^\n]s", text_buffer);
fprintf(new_file.fp, "%s\n", text_buffer);
return 0;
}