【发布时间】:2014-01-30 15:54:32
【问题描述】:
== 总结 ==
我想打印一些东西,printf 会以某种方式自动在文本的某处添加一个“\n”。它似乎取决于输出的长度,因为当我将文本更改为在此处发布时位置发生了变化。但它不会在特定字母或特定位置添加新行(除非我不更改文本,否则它会保持在同一位置)。
示例输出:
文本“字符串”文本“第二个字符串
" 文本 "XYZ"。
== 相关代码 ==
有问题的 printf:
printf("\ntext \"%s\" text \"%s\" text \"XYZ\".", string, second_string);
在等待回车键之前有一个getchar():
getchar();
这一切都在一个 if 语句中,就在这个语句之前是:
fgets(second_string, 100, stdin);
整个代码('>' 标记有问题的行):
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
char string[20] = "string\0";
char second_string[100];
void function2() {
system("cls");
printf("text");
}
void function(void) {
function2();
printf("text");
fgets(second_string, 100, stdin);
if (strcmp("second string", second_string)==0) {
function2();
}
else {
function2();
printf("text");
getchar();
function2();
> printf("\ntext \"%s\" text \"%s\" text \"XYZ\".", string, second_string);
fgets(second_string, 100, stdin);
}
}
void main(void) {
function();
}
== 一些标题 ==
这就是我问题的核心。随时询问详情。我知道这个解决方案可能很简单,但我在互联网上的任何地方都找不到它(可能我只是搜索不好)并且需要它来上学。如果解决方案之前已经发布在某个地方,请随时提供链接,以便我阅读。
我也是瑞士人,所以我的英语可能不是最好的:D
提前致谢!
如果有人想抱怨这堵可能是多余信息的墙,我只想提供尽可能多的信息。上面有总结。它包含基本信息。
【问题讨论】:
-
如果您不知道,
fgets()保留来自stdin的尾随换行符作为其结果数组中的最后一个字符。您可能需要考虑这一点。
标签: c string printf newline output