我正在打印:
char aulaIP2[50];
char aula[50];
printf("Enter the name of classroom: ");
fgets(aula, 49, stdin);
if (fgets(aula, sizeof aula, stdin)){
printf("Enter IP classroom: ");
fgets(aulaIP2, 49, stdin);
FILE *file = fopen("aules.text", "w+");
fprintf(file, "%s:%s", aula, aulaIP2);
fclose(file);
getchar();
}
文件中的输出为:
306
:127
而且我要:
306:127
为什么
fprintf
无法在同一行中打印出来?我已经尝试使用两个fprintf
来执行此操作,但结果相同。 最佳答案
从fgets
文档中:
换行符使fgets停止读取,但是该函数将其视为有效字符并包含在复制到str的字符串中。
因此,当您阅读字符串时,它们实际上包含换行符,然后将其打印为字符串的一部分。代替使用fgets()
,使用scanf()
可以读取直到第一个空格(不包括):
scanf( "%50s", aula );
关于c - C- fprintf同一行中的两个变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23665061/