我有两个问题,但这是更紧迫的一个......
printf("Enter the term: "); scanf("%d", &input);
fprintf(inputf, "%d,", input);
printf("Enter the id: "); scanf("%d", &input);
fprintf(inputf, "%d,", input);
printf("Enter last name: "); scanf("%s", name);
fprintf(inputf, "%s,", name);
printf("Enter first name: "); fgets(name, 15, stdin);
fprintf(inputf, "%s,", name);
printf("Enter the subject: "); scanf("%s", subsec);
fprintf(inputf, "%s,", subsec);
printf("Enter the catalog number: "); scanf("%d", &input);
fprintf(inputf, "%d,", input);
//ISSUE HERE!
printf("Enter the section: "); scanf("%s", subsec);
fprintf(inputf, "%s\n", subsec);
每当我输入所有这些信息并在最后一个变量条目上按 Enter 键时,我都会看到一个窗口显示“运行时检查失败 #2 - 变量 'subsec' 周围的堆栈已损坏”。我可以继续,该程序几乎可以按照我的意愿运行,但为什么会发生这种情况?
我的第二部分是当我输入姓氏,然后想输入名字时,当我按 Enter 键输入名字字符串变量时,它会包含“\n”字符,显然不希望发生这种情况,但是两者名字和姓氏需要能够保存带有空格的字符串。如何用一块石头杀死两只鸟?我使用 fget 来允许我保留空格,但它解决了我的“\n”捕获问题,但是如果我将它改回 scanf,我就无法保留空格!
编辑:这是亚秒
char subsec[MAX_SUBSEC];
MAX_SUBSEC 设置为 3,如您所见,我以前使用它,但我认为第二个 scanf(用于部分,而不是主题)会覆盖输入 subsec 的原始用途,我会说我错了吗?而且我不允许这样做,因此问题...
主题的输入将是“CSE”,部分的输入将是“R01”,是的,这一切都将被放入一个文件中。